/**
 * 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 AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type WritableSignerAccount } from '@solana/kit';
import { MERKLE_DISTRIBUTOR_PROGRAM_ADDRESS } from '../programs/index.js';
export declare const SET_ENABLE_SLOT_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getSetEnableSlotDiscriminatorBytes(): ReadonlyUint8Array;
export type SetEnableSlotInstruction<TProgram extends string = typeof MERKLE_DISTRIBUTOR_PROGRAM_ADDRESS, TAccountDistributor extends string | AccountMeta<string> = string, TAccountAdmin extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
    TAccountDistributor extends string ? WritableAccount<TAccountDistributor> : TAccountDistributor,
    TAccountAdmin extends string ? WritableSignerAccount<TAccountAdmin> & AccountSignerMeta<TAccountAdmin> : TAccountAdmin,
    ...TRemainingAccounts
]>;
export type SetEnableSlotInstructionData = {
    discriminator: ReadonlyUint8Array;
    enableSlot: bigint;
};
export type SetEnableSlotInstructionDataArgs = {
    enableSlot: number | bigint;
};
export declare function getSetEnableSlotInstructionDataEncoder(): FixedSizeEncoder<SetEnableSlotInstructionDataArgs>;
export declare function getSetEnableSlotInstructionDataDecoder(): FixedSizeDecoder<SetEnableSlotInstructionData>;
export declare function getSetEnableSlotInstructionDataCodec(): FixedSizeCodec<SetEnableSlotInstructionDataArgs, SetEnableSlotInstructionData>;
export type SetEnableSlotInput<TAccountDistributor extends string = string, TAccountAdmin extends string = string> = {
    /** [MerkleDistributor]. */
    distributor: Address<TAccountDistributor>;
    /** Payer to create the distributor. */
    admin: TransactionSigner<TAccountAdmin>;
    enableSlot: SetEnableSlotInstructionDataArgs['enableSlot'];
};
export declare function getSetEnableSlotInstruction<TAccountDistributor extends string, TAccountAdmin extends string, TProgramAddress extends Address = typeof MERKLE_DISTRIBUTOR_PROGRAM_ADDRESS>(input: SetEnableSlotInput<TAccountDistributor, TAccountAdmin>, config?: {
    programAddress?: TProgramAddress;
}): SetEnableSlotInstruction<TProgramAddress, TAccountDistributor, TAccountAdmin>;
export type ParsedSetEnableSlotInstruction<TProgram extends string = typeof MERKLE_DISTRIBUTOR_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        /** [MerkleDistributor]. */
        distributor: TAccountMetas[0];
        /** Payer to create the distributor. */
        admin: TAccountMetas[1];
    };
    data: SetEnableSlotInstructionData;
};
export declare function parseSetEnableSlotInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedSetEnableSlotInstruction<TProgram, TAccountMetas>;
