import type { WS } from "insite-ws/client";
import type { WSServerClient } from "insite-ws/server";
import { StringStreamer } from "./StringStreamer";
import type { FileStreamer } from "./browser/FileStreamer";
import type { OutgoingChunk, OutgoingTransferHandles, OutgoingTransferProps, OutgoingTransferTypes, TransferTypes } from "./types";
export declare class OutgoingTransfer<WSORWSSC extends WS | WSServerClient> {
    #private;
    constructor(ws: WSORWSSC, kind: string, { data, type, incomingType, collect, metadata, size, chunkSize, encoding, incomingEncoding, onBegin, onSenderProgress, onProgress, onEnd, onError }: OutgoingTransferProps<WSORWSSC, any, any>, handles: OutgoingTransferHandles);
    ws: WSORWSSC;
    kind: string;
    data?: import("./types").OutgoingData | undefined;
    type?: string;
    collect: boolean;
    metadata: Record<string, unknown> | undefined;
    size: number | null;
    encoding: "base64" | "buffer" | "utf8" | undefined;
    chunkSize: number;
    id: string;
    isAborted: boolean;
    isTransfered: boolean;
    confirmResponse?: string;
    beginAt: number | null;
    duration: number | null;
    transferedSize: number;
    bytesPerMs: number | null;
    senderProgress: number;
    progress: number;
    endAt: number | null;
    error: Error | null;
    stringStreamer?: StringStreamer;
    fileStreamer?: FileStreamer;
    [key: number | string | symbol]: unknown;
    whenSetUp(): Promise<void>;
    handleConfirm(confirmResponse: string): Promise<void>;
    handleChunk: (chunk: OutgoingChunk) => void;
    sent: () => void;
    handleProgress(progress: number): void;
    handleCompleted(): Promise<void>;
    throw(errorMessage: string): void;
    abort(): void;
    serialize(): {
        id: string;
        kind: string;
        type: string | undefined;
        collect: boolean;
        encoding: "base64" | "buffer" | "utf8" | undefined;
        size: number | null;
        metadata: Record<string, unknown> | undefined;
        isAborted: boolean;
        isTransfered: boolean;
        confirmResponse: string | undefined;
        beginAt: number | null;
        duration: number | null;
        transferedSize: number;
        bytesPerMs: number | null;
        senderProgress: number;
        progress: number;
        endAt: number | null;
        error: Error | null;
    };
    static types: OutgoingTransferTypes<OutgoingTransfer<WS | WSServerClient>, TransferTypes>;
    static chunkSize: number;
}
//# sourceMappingURL=OutgoingTransfer.d.ts.map