import { PublicKey } from '@solana/web3.js';
/**
 * MultisigIsm instruction types matching Rust enum
 * See: rust/sealevel/programs/ism/multisig-ism-message-id/src/instruction.rs
 */
export declare enum SealevelMultisigIsmInstructionType {
    INIT = 0,
    SET_VALIDATORS_AND_THRESHOLD = 1,
    GET_OWNER = 2,
    TRANSFER_OWNERSHIP = 3
}
export declare const SealevelMultisigIsmInstructionName: Record<SealevelMultisigIsmInstructionType, string>;
/**
 * SetValidatorsAndThreshold instruction data
 * Matches: rust/sealevel/programs/ism/multisig-ism-message-id/src/instruction.rs
 *
 * Note: Instruction format AFTER 8-byte program discriminator:
 * [enum_discriminator: u8, domain: u32, validators: Vec<[u8; 20]>, threshold: u8]
 */
export declare class SealevelMultisigIsmSetValidatorsInstruction {
    domain: number;
    validators: Uint8Array[];
    threshold: number;
    get validatorAddresses(): string[];
    constructor(fields: any);
}
export declare const SealevelMultisigIsmSetValidatorsInstructionSchema: Map<any, any>;
/**
 * TransferOwnership instruction data
 */
export declare class SealevelMultisigIsmTransferOwnershipInstruction {
    newOwner: Uint8Array | null;
    newOwnerPubkey?: PublicKey;
    constructor(fields: any);
}
export declare const SealevelMultisigIsmTransferOwnershipInstructionSchema: Map<any, any>;
/**
 * On-chain account data structures
 * See: rust/sealevel/programs/ism/multisig-ism-message-id/src/accounts.rs
 */
/**
 * SealevelValidatorsAndThreshold - Configuration of a validator set and threshold
 * Matches: rust/sealevel/programs/ism/multisig-ism-message-id/src/instruction.rs
 */
export declare class SealevelValidatorsAndThreshold {
    validators: Uint8Array[];
    threshold: number;
    get validatorAddresses(): string[];
    constructor(fields: any);
}
export declare const SealevelValidatorsAndThresholdSchema: Map<any, any>;
/**
 * SealevelDomainData - The data of a "domain data" PDA account
 * One of these exists for each domain that's been enrolled
 * Matches: rust/sealevel/programs/ism/multisig-ism-message-id/src/accounts.rs
 */
export declare class SealevelDomainData {
    bumpSeed: number;
    validatorsAndThreshold: SealevelValidatorsAndThreshold;
    constructor(fields: any);
}
export declare const SealevelDomainDataSchema: Map<any, any>;
/**
 * SealevelAccessControlData - The data of the access control PDA account
 * Matches: rust/sealevel/programs/ism/multisig-ism-message-id/src/accounts.rs
 */
export declare class SealevelAccessControlData {
    bumpSeed: number;
    owner: Uint8Array | null;
    ownerPubkey?: PublicKey;
    constructor(fields: any);
}
export declare const SealevelAccessControlDataSchema: Map<any, any>;
//# sourceMappingURL=serialization.d.ts.map