import { fetchEncodedAccount, fetchEncodedAccounts, Account, Address, EncodedAccount, FetchAccountConfig, FetchAccountsConfig, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, MaybeAccount, MaybeEncodedAccount, ReadonlyUint8Array } from '@solana/kit';
import { AccountDiscriminator } from '../types';
export declare const CONSUMED_PERMISSION_DISCRIMINATOR = AccountDiscriminator.ConsumedPermission;
export declare function getConsumedPermissionDiscriminatorBytes(): ReadonlyUint8Array;
export type ConsumedPermission = {
    discriminator: AccountDiscriminator;
    padding1: ReadonlyUint8Array;
    safeToCloseSlot: bigint;
    refundDestination: Address;
    padding2: ReadonlyUint8Array;
};
export type ConsumedPermissionArgs = {
    padding1?: ReadonlyUint8Array;
    safeToCloseSlot: number | bigint;
    refundDestination: Address;
    padding2?: ReadonlyUint8Array;
};
export declare function getConsumedPermissionEncoder(): FixedSizeEncoder<ConsumedPermissionArgs>;
export declare function getConsumedPermissionDecoder(): FixedSizeDecoder<ConsumedPermission>;
export declare function getConsumedPermissionCodec(): FixedSizeCodec<ConsumedPermissionArgs, ConsumedPermission>;
export declare function decodeConsumedPermission<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<ConsumedPermission, TAddress>;
export declare function decodeConsumedPermission<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<ConsumedPermission, TAddress>;
export declare function fetchConsumedPermission<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<Account<ConsumedPermission, TAddress>>;
export declare function fetchMaybeConsumedPermission<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<MaybeAccount<ConsumedPermission, TAddress>>;
export declare function fetchAllConsumedPermission(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<Account<ConsumedPermission>[]>;
export declare function fetchAllMaybeConsumedPermission(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<MaybeAccount<ConsumedPermission>[]>;
export declare function getConsumedPermissionSize(): number;
