import { AleoDeployment, AleoTransaction, BaseMessageSignerWalletAdapter, DecryptPermission, WalletAdapterNetwork, WalletName, WalletReadyState } from '@demox-labs/aleo-wallet-adapter-base';
import { LeoWallet } from '@demox-labs/aleo-wallet-adapter-leo';
export interface PuzzleWindow extends Window {
    puzzle?: LeoWallet;
}
export interface PuzzleWalletAdapterConfig {
    appName?: string;
    appIconUrl?: string;
    appDescription?: string;
    programIdPermissions: Partial<Record<WalletAdapterNetwork, string[]>>;
}
export declare const PuzzleWalletName: WalletName<"Puzzle Wallet">;
export declare class PuzzleWalletAdapter extends BaseMessageSignerWalletAdapter {
    name: WalletName<"Puzzle Wallet">;
    url: string;
    icon: string;
    readonly supportedTransactionVersions: any;
    private _connecting;
    private _wallet;
    private _network;
    private _appName;
    private _appIconUrl;
    private _appDescription;
    private _programIdPermissions;
    private _publicKey;
    private _decryptPermission;
    private _readyState;
    constructor({ appName, appIconUrl, appDescription, programIdPermissions }: PuzzleWalletAdapterConfig);
    get publicKey(): string;
    get decryptPermission(): string;
    get connecting(): boolean;
    get readyState(): WalletReadyState;
    set readyState(readyState: WalletReadyState);
    decrypt(cipherText: string, tpk?: string, programId?: string, functionName?: string, index?: number): Promise<string>;
    requestRecords(program: string): Promise<any[]>;
    requestTransaction(transaction: AleoTransaction): Promise<string>;
    transactionStatus(transactionId: string): Promise<string>;
    requestRecordPlaintexts(program: string): Promise<any[]>;
    connect(decryptPermission: DecryptPermission, network: WalletAdapterNetwork): Promise<void>;
    disconnect(): Promise<void>;
    signMessage(message: Uint8Array): Promise<Uint8Array>;
    requestDeploy(deployment: AleoDeployment): Promise<string>;
    requestExecution(transaction: AleoTransaction): Promise<string>;
    requestBulkTransactions(transactions: AleoTransaction[]): Promise<string[]>;
    getExecution(transactionId: string): Promise<string>;
    requestTransactionHistory(program: string): Promise<any[]>;
}
