import { SourceDestination } from './source-destination/source-destination';
export declare type WriteStep = 'flashing' | 'verifying' | 'finished';
interface MultiDestinationState {
    active: number;
    flashing: number;
    verifying: number;
    failed: number;
    successful: number;
    type: WriteStep;
    size?: number;
    compressedSize?: number;
    blockmappedSize?: number;
    sparse?: boolean;
    rootStreamPosition?: number;
    rootStreamSpeed?: number;
}
export interface MultiDestinationProgress extends MultiDestinationState {
    bytes: number;
    position: number;
    speed: number;
    totalSpeed: number;
    percentage?: number;
    eta?: number;
}
export declare type OnFailFunction = (destination: SourceDestination, error: Error) => void;
export declare type OnProgressFunction = (progress: MultiDestinationProgress) => void;
export interface PipeSourceToDestinationsResult {
    failures: Map<SourceDestination, Error>;
    bytesWritten: number;
}
export declare function pipeSourceToDestinations(source: SourceDestination, destinations: SourceDestination[], onFail: OnFailFunction, onProgress: OnProgressFunction, verify?: boolean): Promise<PipeSourceToDestinationsResult>;
export {};
