/**
 * This code was AUTOGENERATED using the kinobi library.
 * Please DO NOT EDIT THIS FILE, instead use visitors
 * to add features, then rerun kinobi to update it.
 *
 * @see https://github.com/metaplex-foundation/kinobi
 */
import { Account, Context, Option, OptionOrNullable, Pda, PublicKey, RpcAccount, RpcGetAccountOptions, RpcGetAccountsOptions } from '@metaplex-foundation/umi';
import { Serializer } from '@metaplex-foundation/umi/serializers';
import { Key, KeyArgs, TokenDelegateRole, TokenDelegateRoleArgs, TokenState, TokenStateArgs } from '../types';
export type TokenRecord = Account<TokenRecordAccountData>;
export type TokenRecordAccountData = {
    key: Key;
    bump: number;
    state: TokenState;
    ruleSetRevision: Option<bigint>;
    delegate: Option<PublicKey>;
    delegateRole: Option<TokenDelegateRole>;
    lockedTransfer: Option<PublicKey>;
};
export type TokenRecordAccountDataArgs = {
    bump: number;
    state: TokenStateArgs;
    ruleSetRevision: OptionOrNullable<number | bigint>;
    delegate: OptionOrNullable<PublicKey>;
    delegateRole: OptionOrNullable<TokenDelegateRoleArgs>;
    lockedTransfer: OptionOrNullable<PublicKey>;
};
export declare function getTokenRecordAccountDataSerializer(): Serializer<TokenRecordAccountDataArgs, TokenRecordAccountData>;
export declare function deserializeTokenRecord(rawAccount: RpcAccount): TokenRecord;
export declare function fetchTokenRecord(context: Pick<Context, 'rpc'>, publicKey: PublicKey | Pda, options?: RpcGetAccountOptions): Promise<TokenRecord>;
export declare function safeFetchTokenRecord(context: Pick<Context, 'rpc'>, publicKey: PublicKey | Pda, options?: RpcGetAccountOptions): Promise<TokenRecord | null>;
export declare function fetchAllTokenRecord(context: Pick<Context, 'rpc'>, publicKeys: Array<PublicKey | Pda>, options?: RpcGetAccountsOptions): Promise<TokenRecord[]>;
export declare function safeFetchAllTokenRecord(context: Pick<Context, 'rpc'>, publicKeys: Array<PublicKey | Pda>, options?: RpcGetAccountsOptions): Promise<TokenRecord[]>;
export declare function getTokenRecordGpaBuilder(context: Pick<Context, 'rpc' | 'programs'>): import("@metaplex-foundation/umi").GpaBuilder<TokenRecord, {
    key: KeyArgs;
    bump: number;
    state: TokenStateArgs;
    ruleSetRevision: OptionOrNullable<number | bigint>;
    delegate: OptionOrNullable<PublicKey>;
    delegateRole: OptionOrNullable<TokenDelegateRoleArgs>;
    lockedTransfer: OptionOrNullable<PublicKey>;
}>;
export declare function getTokenRecordSize(): number;
export declare function findTokenRecordPda(context: Pick<Context, 'eddsa' | 'programs'>, seeds: {
    /** The address of the mint account */
    mint: PublicKey;
    /** The address of the token account (ata or not) */
    token: PublicKey;
}): Pda;
export declare function fetchTokenRecordFromSeeds(context: Pick<Context, 'eddsa' | 'programs' | 'rpc'>, seeds: Parameters<typeof findTokenRecordPda>[1], options?: RpcGetAccountOptions): Promise<TokenRecord>;
export declare function safeFetchTokenRecordFromSeeds(context: Pick<Context, 'eddsa' | 'programs' | 'rpc'>, seeds: Parameters<typeof findTokenRecordPda>[1], options?: RpcGetAccountOptions): Promise<TokenRecord | null>;
