declare enum ProtocolEnum {
    ARWEAVE = "arweave",
    FILECOIN = "ipfs-filecoin",
    IPFS = "ipfs"
}

interface UploadResult {
    uploadId: string;
    bucketId: string;
    protocolLink: string;
    dynamicLinks: string[];
}

interface SpheronClientConfiguration {
    token: string;
}
declare class SpheronClient {
    private readonly configuration;
    constructor(configuration: SpheronClientConfiguration);
    upload(path: string, configuration: {
        name: string;
        protocol: ProtocolEnum;
        organizationId?: string;
        onUploadInitiated?: (uploadId: string) => void;
        onChunkUploaded?: (uploadedSize: number, totalSize: number) => void;
    }): Promise<UploadResult>;
}

export { ProtocolEnum, SpheronClientConfiguration, SpheronClient as default };
