import { Chain, TokenId, WormholeMessageId } from "@wormhole-foundation/connect-sdk";
import { Algodv2, LogicSigAccount } from "algosdk";
export declare const SEED_AMT: number;
export declare const MAX_KEYS: number;
export declare const MAX_BYTES_PER_KEY: number;
export declare const BITS_PER_BYTE: number;
export declare const BITS_PER_KEY: number;
export declare const MAX_BYTES: number;
export declare const MAX_BITS: number;
export interface PopulateData {
    appId: bigint;
    appAddress: Uint8Array;
    address: Uint8Array;
    idx: bigint;
}
export declare const varint: {
    _limit: number;
    encodingLength: (value: number) => number;
    encode: (i: bigint | number, buffer?: ArrayBuffer, byteOffset?: number) => Uint8Array;
    decode: (data: Uint8Array, offset?: number) => number;
};
export declare const StorageLogicSig: {
    forMessageId: (appId: bigint, whm: WormholeMessageId) => LogicSigAccount;
    forWrappedAsset: (appId: bigint, token: TokenId<Chain>) => LogicSigAccount;
    forNativeAsset: (appId: bigint, tokenId: bigint) => LogicSigAccount;
    forGuardianSet: (appId: bigint, idx: bigint | number) => LogicSigAccount;
    forEmitter: (appId: bigint, emitter: Uint8Array) => LogicSigAccount;
    _encode: (data: bigint | Uint8Array) => string[];
    fromData: (data: PopulateData) => LogicSigAccount;
    /**
     * Returns the local data for an application ID
     * @param client Algodv2 client
     * @param appId Application ID of interest
     * @param address Address of the account
     * @returns Promise with Uint8Array of data squirreled away
     */
    decodeLocalState: (client: Algodv2, appId: bigint, address: string) => Promise<Uint8Array>;
    /**
     * This function is used to check if a VAA has been redeemed by looking at a specific bit
     * @param client AlgodV2 client
     * @param appId Application Id
     * @param addr Wallet address. Someone has to pay for this
     * @param seq The sequence number of the redemption
     * @returns True, if the bit was set and VAA was redeemed, False otherwise
     */
    checkBitsSet: (client: Algodv2, appId: bigint, addr: string, seq: bigint) => Promise<boolean>;
    /**
     * Checks to see if the account exists for the application
     * @param client An Algodv2 client
     * @param appId Application ID
     * @param acctAddr Account address to check
     * @returns True, if account exists for application, False otherwise
     */
    storageAccountExists: (client: Algodv2, address: string, appId: bigint) => Promise<boolean>;
};
//# sourceMappingURL=storage.d.ts.map