import { UploadResult } from 'shomix-testing-core';
export { ProtocolEnum, UploadResult } from 'shomix-testing-core';
import { AuthSig, AccessControlConditions, EvmContractConditions, SolRpcConditions, UnifiedAccessControlConditions, Chain } from '@spheron/encryption';

interface EncryptToIpfsProps {
    authSig?: AuthSig;
    sessionSigs?: any;
    accessControlConditions?: AccessControlConditions;
    evmContractConditions?: EvmContractConditions;
    solRpcConditions?: SolRpcConditions;
    unifiedAccessControlConditions?: UnifiedAccessControlConditions;
    chain: Chain;
    string?: string;
    file?: File;
    litNodeClient: any;
    configuration: {
        token: string;
        onChunkUploaded?: (uploadedSize: number, totalSize: number) => void;
    };
}
interface DecryptFromIpfsProps {
    authSig?: AuthSig;
    sessionSigs?: any;
    ipfsCid: string;
    litNodeClient: any;
}

declare function upload(files: File[] | FileList, configuration: {
    token: string;
    onChunkUploaded?: (uploadedSize: number, totalSize: number) => void;
    apiUrl?: string;
}): Promise<UploadResult>;
declare function encryptUpload({ authSig, sessionSigs, accessControlConditions, evmContractConditions, solRpcConditions, unifiedAccessControlConditions, chain, string, file, litNodeClient, configuration, }: EncryptToIpfsProps): Promise<UploadResult>;
declare function decryptUpload({ authSig, sessionSigs, ipfsCid, litNodeClient, }: DecryptFromIpfsProps): Promise<Uint8Array>;

export { decryptUpload, encryptUpload, upload };
