/**
 * This code was AUTOGENERATED using the codama library.
 * Please DO NOT EDIT THIS FILE, instead use visitors
 * to add features, then rerun codama to update it.
 *
 * @see https://github.com/codama-idl/codama
 */
import { type Address, type Codec, type Decoder, type Encoder, type IAccountMeta, type IAccountSignerMeta, type IInstruction, type IInstructionWithAccounts, type IInstructionWithData, type ReadonlyAccount, type ReadonlySignerAccount, type TransactionSigner, type WritableAccount } from '@solana/kit';
import { TOKEN_2022_PROGRAM_ADDRESS } from '../programs';
export declare const REVOKE_DISCRIMINATOR = 5;
export declare function getRevokeDiscriminatorBytes(): import("@solana/kit").ReadonlyUint8Array;
export type RevokeInstruction<TProgram extends string = typeof TOKEN_2022_PROGRAM_ADDRESS, TAccountSource extends string | IAccountMeta<string> = string, TAccountOwner extends string | IAccountMeta<string> = string, TRemainingAccounts extends readonly IAccountMeta<string>[] = []> = IInstruction<TProgram> & IInstructionWithData<Uint8Array> & IInstructionWithAccounts<[
    TAccountSource extends string ? WritableAccount<TAccountSource> : TAccountSource,
    TAccountOwner extends string ? ReadonlyAccount<TAccountOwner> : TAccountOwner,
    ...TRemainingAccounts
]>;
export type RevokeInstructionData = {
    discriminator: number;
};
export type RevokeInstructionDataArgs = {};
export declare function getRevokeInstructionDataEncoder(): Encoder<RevokeInstructionDataArgs>;
export declare function getRevokeInstructionDataDecoder(): Decoder<RevokeInstructionData>;
export declare function getRevokeInstructionDataCodec(): Codec<RevokeInstructionDataArgs, RevokeInstructionData>;
export type RevokeInput<TAccountSource extends string = string, TAccountOwner extends string = string> = {
    /** The source account. */
    source: Address<TAccountSource>;
    /** The source account owner or its multisignature. */
    owner: Address<TAccountOwner> | TransactionSigner<TAccountOwner>;
    multiSigners?: Array<TransactionSigner>;
};
export declare function getRevokeInstruction<TAccountSource extends string, TAccountOwner extends string, TProgramAddress extends Address = typeof TOKEN_2022_PROGRAM_ADDRESS>(input: RevokeInput<TAccountSource, TAccountOwner>, config?: {
    programAddress?: TProgramAddress;
}): RevokeInstruction<TProgramAddress, TAccountSource, (typeof input)['owner'] extends TransactionSigner<TAccountOwner> ? ReadonlySignerAccount<TAccountOwner> & IAccountSignerMeta<TAccountOwner> : TAccountOwner>;
export type ParsedRevokeInstruction<TProgram extends string = typeof TOKEN_2022_PROGRAM_ADDRESS, TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        /** The source account. */
        source: TAccountMetas[0];
        /** The source account owner or its multisignature. */
        owner: TAccountMetas[1];
    };
    data: RevokeInstructionData;
};
export declare function parseRevokeInstruction<TProgram extends string, TAccountMetas extends readonly IAccountMeta[]>(instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>): ParsedRevokeInstruction<TProgram, TAccountMetas>;
//# sourceMappingURL=revoke.d.ts.map