import { type Address } from '@solana/kit';
import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@hyperlane-xyz/provider-sdk/artifact';
import { type DeployedWarpAddress, type RawCrossCollateralWarpArtifactConfig } from '@hyperlane-xyz/provider-sdk/warp';
import type { SvmSigner } from '../clients/signer.js';
import type { AnnotatedSvmTransaction, SvmReceipt, SvmRpc } from '../types.js';
import type { SvmWarpTokenConfig } from './types.js';
export declare class SvmCrossCollateralTokenReader implements ArtifactReader<RawCrossCollateralWarpArtifactConfig, DeployedWarpAddress> {
    protected readonly rpc: SvmRpc;
    constructor(rpc: SvmRpc);
    read(programAddress: string): Promise<ArtifactDeployed<RawCrossCollateralWarpArtifactConfig, DeployedWarpAddress>>;
}
export declare function buildCrossCollateralRouterEnrollTxs(programAddress: Address, owner: Address, crossCollateralRouters: Record<number, Set<string>>): Promise<AnnotatedSvmTransaction[]>;
export declare function buildCrossCollateralRouterUnenrollTxs(programAddress: Address, owner: Address, crossCollateralRouters: Record<number, Set<string> | null>): Promise<AnnotatedSvmTransaction[]>;
export declare class SvmCrossCollateralTokenWriter extends SvmCrossCollateralTokenReader implements ArtifactWriter<RawCrossCollateralWarpArtifactConfig, DeployedWarpAddress> {
    private readonly config;
    private readonly svmSigner;
    constructor(config: SvmWarpTokenConfig, rpc: SvmRpc, svmSigner: SvmSigner);
    create(artifact: ArtifactNew<RawCrossCollateralWarpArtifactConfig>): Promise<[
        ArtifactDeployed<RawCrossCollateralWarpArtifactConfig, DeployedWarpAddress>,
        SvmReceipt[]
    ]>;
    update(artifact: ArtifactDeployed<RawCrossCollateralWarpArtifactConfig, DeployedWarpAddress>): Promise<AnnotatedSvmTransaction[]>;
}
//# sourceMappingURL=cross-collateral-token.d.ts.map