import { BN, Program, web3 } from '@j0nnyboi/anchor';
import { PublicKey } from '@safecoin/web3.js';
import { Manifest } from '../types';
declare type Env = 'mainnet-beta' | 'devnet';
/**
 *
 * Upload a new candy machine with the settings passed and cache.
 * At the end of the upload, the cache can be downloaded.
 */
export declare function uploadV2({ files, cacheName, env, totalNFTs, storage, retainAuthority, mutable, batchSize, price, treasuryWallet, gatekeeper, goLiveDate, endSettings, whitelistMintSettings, hiddenSettings, walletKeyPair, anchorProgram, rateLimit, }: {
    files: File[];
    cacheName: string;
    env: Env;
    totalNFTs: number;
    storage: string;
    retainAuthority: boolean;
    mutable: boolean;
    batchSize: number | null;
    price: BN;
    treasuryWallet: PublicKey;
    gatekeeper: null | {
        expireOnUse: boolean;
        gatekeeperNetwork: web3.PublicKey;
    };
    goLiveDate: null | BN;
    endSettings: null | [number, BN];
    whitelistMintSettings: null | {
        mode: any;
        mint: PublicKey;
        presale: boolean;
        discountPrice: null | BN;
    };
    hiddenSettings: null | {
        name: string;
        uri: string;
        hash: Uint8Array;
    };
    walletKeyPair: any;
    anchorProgram: Program;
    rateLimit: number | null;
}): Promise<boolean | string>;
/**
 * Returns a Manifest from a path and an assetKey
 * Replaces image.ext => index.ext
 * Replaces animation_url.ext => index.ext
 */
export declare function getAssetManifest(assetIndex: string, manifest: Manifest): Manifest;
export {};
