import type { Address, Instruction, TransactionSigner } from '@solana/kit';
import { type H256, type RemoteRouterConfig } from '../codecs/shared.js';
import { type TokenInitInstructionData } from './token.js';
import { type InstructionAccountMeta } from './utils.js';
export declare enum CrossCollateralInstructionKind {
    SetCrossCollateralRouters = 0,
    TransferRemoteTo = 1,
    HandleLocal = 2,
    HandleLocalAccountMetas = 3
}
export type CrossCollateralRouterUpdate = {
    kind: 'add';
    config: {
        domain: number;
        router: H256;
    };
} | {
    kind: 'remove';
    config: RemoteRouterConfig;
};
export declare function getCrossCollateralInitInstruction(programAddress: Address, payer: TransactionSigner, init: TokenInitInstructionData, pluginAccounts: InstructionAccountMeta[], mailboxOutboxPda: Address): Promise<Instruction>;
export declare function getSetCrossCollateralRoutersInstruction(programAddress: Address, owner: Address, updates: CrossCollateralRouterUpdate[]): Promise<Instruction>;
//# sourceMappingURL=cross-collateral-token.d.ts.map