import { ethers } from 'ethers';
export interface UploadTask {
    clientIndex: number;
    taskSize: number;
    segIndex: number;
    numShard: number;
    txSeq: number;
}
export interface UploadOption {
    tags?: ethers.BytesLike;
    submitter?: string;
    finalityRequired?: boolean;
    taskSize?: number;
    expectedReplica?: number;
    fragmentSize?: number;
    skipTx?: boolean;
    skipIfFinalized?: boolean;
    fee?: bigint;
    nonce?: bigint;
    onProgress?: (message: string) => void;
}
export declare const defaultUploadOption: Omit<Required<UploadOption>, 'nonce' | 'onProgress'> & {
    nonce?: bigint;
    onProgress?: (message: string) => void;
};
/**
 * Merges user-provided upload options with default values
 */
export declare function mergeUploadOptions(userOptions?: UploadOption): Required<Omit<UploadOption, 'nonce' | 'onProgress'>> & {
    nonce?: bigint;
    onProgress?: (message: string) => void;
};
//# sourceMappingURL=types.d.ts.map