import type { LstWithdrawalReaderKind } from './types';
/**
 * Static registry entry for an LST's withdrawal-request enumeration
 * surface.
 *
 * Each entry pins: the LST share-token address, the brand/symbol
 * (for output labelling), the reader kind, and any auxiliary contract
 * addresses the reader needs (the withdrawal-manager NFT/queue
 * contract, Polygon stake manager for MaticX, …).
 *
 * Mirrors [LST_WITHDRAWAL_QUEUES.md](../LST_WITHDRAWAL_QUEUES.md);
 * read that for per-protocol semantics.
 */
export interface LstWithdrawalRegistryEntry {
    /** LST share-token address (matches `address` in
     *  `../registry.ts → LST_REGISTRY`). Lowercased. */
    lst: string;
    /** Brand label. */
    brand: string;
    /** Symbol — used to label the per-asset request list in UI. */
    symbol: string;
    /** Reader kind. */
    reader: LstWithdrawalReaderKind;
    /** Optional withdrawal contract — separate from the LST share token
     *  for most protocols. Lowercased.
     *  - Lido: WithdrawalQueueERC721
     *  - EtherFi: WithdrawRequestNFT
     *  - YieldNest: WithdrawalQueueManager
     *  - Stader ETHx: UserWithdrawalManager
     *  - Stader MaticX: the home contract itself
     *  - Renzo: WithdrawQueue
     *  - BENQI sAVAX: the sAVAX contract itself
     *  - Beets stS: the SonicStaking proxy itself
     *  - Hyperbeat hbHYPE: the share token itself (ERC-7540 surface) */
    withdrawalContract?: string;
    /** Polygon IStakeManager — only for `staderMaticXQueue`. The
     *  finalization check requires `epoch()` + `withdrawalDelay()`. */
    polygonStakeManager?: string;
}
/** Per-chain LST withdrawal-reader allowlist. */
export declare const LST_WITHDRAWAL_REGISTRY: {
    [chainId: string]: LstWithdrawalRegistryEntry[];
};
/** Returns the withdrawal-registry entries for a chain, or `[]`. */
export declare const getLstWithdrawalRegistry: (chainId: string, extraEntries?: LstWithdrawalRegistryEntry[]) => LstWithdrawalRegistryEntry[];
//# sourceMappingURL=registry.d.ts.map