import { PublicKey } from '@solana/web3.js';
import { Domain } from '@hyperlane-xyz/utils';
export declare enum SealevelInterchainGasPaymasterType {
    Igp = 0,
    OverheadIgp = 1
}
/**
 * IGP Config Borsh Schema
 */
export declare class SealevelInterchainGasPaymasterConfig {
    readonly fields: any;
    program_id: Uint8Array;
    program_id_pubkey: PublicKey;
    type: SealevelInterchainGasPaymasterType;
    igp_account?: Uint8Array;
    igp_account_pub_key?: PublicKey;
    constructor(fields: any);
}
export declare const SealevelInterchainGasPaymasterConfigSchema: {
    kind: string;
    fields: (string | number[])[][];
};
/**
 * Gas Oracle Borsh Schema
 */
export declare class SealevelRemoteGasData {
    readonly fields: any;
    token_exchange_rate: bigint;
    gas_price: bigint;
    token_decimals: number;
    constructor(fields: any);
}
export declare const SealevelRemoteGasDataSchema: {
    kind: string;
    fields: string[][];
};
export declare enum SealevelGasOracleType {
    RemoteGasData = 0
}
export declare class SealevelGasOracle {
    readonly fields: any;
    type: SealevelGasOracleType;
    data: SealevelRemoteGasData;
    constructor(fields: any);
}
export declare const SealevelGasOracleSchema: {
    kind: string;
    fields: (string | typeof SealevelRemoteGasData)[][];
};
/**
 * IGP Program Data Borsh Schema
 */
export declare class SealevelOverheadIgpData {
    readonly fields: any;
    bump: number;
    salt: Uint8Array;
    owner?: Uint8Array;
    owner_pub_key?: PublicKey;
    inner: Uint8Array;
    inner_pub_key: PublicKey;
    gas_overheads: Map<Domain, bigint>;
    constructor(fields: any);
}
export declare const SealevelOverheadIgpDataSchema: Map<any, any>;
export declare class SealevelIgpData {
    bump_seed: number;
    salt: Uint8Array;
    owner?: Uint8Array | null;
    owner_pub_key?: PublicKey;
    beneficiary: Uint8Array;
    beneficiary_pub_key: PublicKey;
    gas_oracles: Map<number, SealevelGasOracle>;
    constructor(fields: any);
}
export declare const SealevelIgpDataSchema: Map<any, any>;
/**
 * IGP instruction Borsh Schema
 */
export declare enum SealevelIgpInstruction {
    Init = 0,
    InitIgp = 1,
    InitOverheadIgp = 2,
    PayForGas = 3,
    QuoteGasPayment = 4,
    TransferIgpOwnership = 5,
    TransferOverheadIgpOwnership = 6,
    SetIgpBeneficiary = 7,
    SetDestinationGasOverheads = 8,
    SetGasOracleConfigs = 9,
    Claim = 10
}
export declare class SealevelIgpQuoteGasPaymentInstruction {
    readonly fields: any;
    destination_domain: number;
    gas_amount: bigint;
    constructor(fields: any);
}
export declare const SealevelIgpQuoteGasPaymentSchema: Map<any, any>;
export declare class SealevelIgpQuoteGasPaymentResponse {
    readonly fields: any;
    payment_quote: bigint;
    constructor(fields: any);
}
export declare const SealevelIgpQuoteGasPaymentResponseSchema: Map<any, any>;
/**
 * Gas Oracle Configuration Schemas
 */
export declare class SealevelGasOracleConfig {
    domain: number;
    gas_oracle: SealevelGasOracle | null;
    constructor(domain: number, gasOracle: SealevelGasOracle | null);
}
export declare const SealevelGasOracleConfigSchema: {
    kind: "struct";
    fields: (string | {
        kind: "option";
        type: typeof SealevelGasOracle;
    })[][];
};
export declare class SealevelGasOverheadConfig {
    destination_domain: number;
    gas_overhead: bigint | null;
    constructor(destination_domain: number, gas_overhead: bigint | null);
}
export declare const SealevelGasOverheadConfigSchema: {
    kind: "struct";
    fields: (string | {
        kind: "option";
        type: string;
    })[][];
};
/**
 * Instruction Schemas
 */
export declare class SealevelSetGasOracleConfigsInstruction {
    configs: SealevelGasOracleConfig[];
    constructor(configs: SealevelGasOracleConfig[]);
}
export declare const SealevelSetGasOracleConfigsInstructionSchema: Map<any, any>;
export declare class SealevelSetDestinationGasOverheadsInstruction {
    configs: SealevelGasOverheadConfig[];
    constructor(configs: SealevelGasOverheadConfig[]);
}
export declare const SealevelSetDestinationGasOverheadsInstructionSchema: Map<any, any>;
//# sourceMappingURL=serialization.d.ts.map