import { Logger } from '@n8n/backend-common';
import type { StringValue as TimeUnitValue } from 'ms';
import type { INodeExecutionData, IBinaryData } from 'n8n-workflow';
import type { Readable } from 'stream';
import { ErrorReporter } from '../errors';
import { BinaryDataConfig } from './binary-data.config';
import type { BinaryData } from './types';
export declare class BinaryDataService {
    private readonly config;
    private readonly errorReporter;
    private readonly logger;
    private mode;
    private managers;
    constructor(config: BinaryDataConfig, errorReporter: ErrorReporter, logger: Logger);
    setManager(mode: BinaryData.ServiceMode, manager: BinaryData.Manager): void;
    init(): Promise<void>;
    createSignedToken(binaryData: IBinaryData, expiresIn?: TimeUnitValue): string;
    validateSignedToken(token: string): string;
    copyBinaryFile(location: BinaryData.FileLocation, binaryData: IBinaryData, filePath: string): Promise<IBinaryData>;
    store(location: BinaryData.FileLocation, bufferOrStream: Buffer | Readable, binaryData: IBinaryData): Promise<IBinaryData>;
    getAsStream(binaryDataId: string, chunkSize?: number): Promise<Readable>;
    getAsBuffer(binaryData: IBinaryData): Promise<Buffer<ArrayBufferLike>>;
    getPath(binaryDataId: string): string;
    getMetadata(binaryDataId: string): Promise<BinaryData.Metadata>;
    deleteMany(locations: BinaryData.FileLocation[]): Promise<void>;
    deleteManyByBinaryDataId(ids: string[]): Promise<void>;
    duplicateBinaryData(location: BinaryData.FileLocation, inputData: Array<INodeExecutionData[] | null>): Promise<INodeExecutionData[][]>;
    rename(oldFileId: string, newFileId: string): Promise<void>;
    private createBinaryDataId;
    private duplicateBinaryDataInExecData;
    private getManager;
}
