import type { WS } from "insite-ws/client";
import type { WSServerClient } from "insite-ws/server";
import type { IncomingChunk, IncomingData, IncomingTransferHandles, IncomingTransferListener, IncomingTransferProps, IncomingTransferTypes, TransferTypes } from "./types";
export declare class IncomingTransfer<WSORWSSC extends WS | WSServerClient> {
    #private;
    constructor(ws: WSORWSSC, kind: string, id: string, { type, collect, encoding, size, metadata }: IncomingTransferProps<TransferTypes>, handles: IncomingTransferHandles, listeners: Set<IncomingTransferListener<WSORWSSC, any>>);
    ws: WSORWSSC;
    kind: string;
    id: string;
    type: TransferTypes;
    collect: boolean;
    encoding: "base64" | "buffer" | "utf8";
    size: number;
    metadata: Record<string, unknown>;
    data?: IncomingData;
    isAborted: boolean;
    isAbortedBySender: boolean;
    isAbortedByReceiver: boolean;
    isTransfered: boolean;
    confirmResponse?: string;
    beginAt: number | null;
    duration: number | null;
    transferedSize: number;
    processedSize: number;
    bytesPerMs: number | null;
    progress: number;
    endAt: number | null;
    error: Error | null;
    [key: number | string | symbol]: unknown;
    whenSetUp(): Promise<void>;
    confirm(): Promise<void>;
    handleChunk(chunk: IncomingChunk, length?: number): Promise<void>;
    handleSent(): Promise<void>;
    abort(bySender?: boolean): void;
    throw(errorMessage: string, sendToSender?: boolean): void;
    serialize(): {
        id: string;
        kind: string;
        type: TransferTypes;
        collect: boolean;
        encoding: "base64" | "buffer" | "utf8";
        size: number;
        metadata: Record<string, unknown>;
        isAborted: boolean;
        isAbortedBySender: boolean;
        isAbortedByReceiver: boolean;
        isTransfered: boolean;
        confirmResponse: string | undefined;
        beginAt: number | null;
        duration: number | null;
        transferedSize: number;
        processedSize: number;
        bytesPerMs: number | null;
        progress: number;
        endAt: number | null;
        error: Error | null;
    };
    static types: IncomingTransferTypes<IncomingTransfer<WS | WSServerClient>, TransferTypes>;
}
//# sourceMappingURL=IncomingTransfer.d.ts.map