import { type HandleInstruction, type VerifyInstruction } from '../codecs/shared.js';
import { type ReadonlyUint8Array } from '@solana/kit';
export declare const INTERCHAIN_SECURITY_MODULE_INTERFACE_DISCRIMINATORS: {
    readonly type: Uint8Array<ArrayBuffer>;
    readonly verify: Uint8Array<ArrayBuffer>;
    readonly verifyAccountMetas: Uint8Array<ArrayBuffer>;
};
export declare const MESSAGE_RECIPIENT_INTERFACE_DISCRIMINATORS: {
    readonly interchainSecurityModule: Uint8Array<ArrayBuffer>;
    readonly interchainSecurityModuleAccountMetas: Uint8Array<ArrayBuffer>;
    readonly handle: Uint8Array<ArrayBuffer>;
    readonly handleAccountMetas: Uint8Array<ArrayBuffer>;
};
export declare const MULTISIG_ISM_INTERFACE_DISCRIMINATORS: {
    readonly validatorsAndThreshold: Uint8Array<ArrayBuffer>;
    readonly validatorsAndThresholdAccountMetas: Uint8Array<ArrayBuffer>;
};
export type InterchainSecurityModuleInterfaceInstruction = {
    type: 'type';
} | {
    type: 'verify';
    data: VerifyInstruction;
} | {
    type: 'verifyAccountMetas';
    data: VerifyInstruction;
};
export type MessageRecipientInterfaceInstruction = {
    type: 'interchainSecurityModule';
} | {
    type: 'interchainSecurityModuleAccountMetas';
} | {
    type: 'handle';
    data: HandleInstruction;
} | {
    type: 'handleAccountMetas';
    data: HandleInstruction;
};
export type MultisigIsmInterfaceInstruction = {
    type: 'validatorsAndThreshold';
    message: Uint8Array;
} | {
    type: 'validatorsAndThresholdAccountMetas';
    message: Uint8Array;
};
export declare function isProgramInstructionDiscriminator(data: Uint8Array): boolean;
export declare function encodeInterchainSecurityModuleInterfaceInstruction(instruction: InterchainSecurityModuleInterfaceInstruction): ReadonlyUint8Array;
export declare function decodeInterchainSecurityModuleInterfaceInstruction(data: Uint8Array): InterchainSecurityModuleInterfaceInstruction | null;
export declare function encodeMessageRecipientInterfaceInstruction(instruction: MessageRecipientInterfaceInstruction): ReadonlyUint8Array;
export declare function decodeMessageRecipientInterfaceInstruction(data: Uint8Array): MessageRecipientInterfaceInstruction | null;
export declare function encodeMultisigIsmInterfaceInstruction(instruction: MultisigIsmInterfaceInstruction): ReadonlyUint8Array;
export declare function decodeMultisigIsmInterfaceInstruction(data: Uint8Array): MultisigIsmInterfaceInstruction | null;
//# sourceMappingURL=interfaces.d.ts.map