import { TransactionResult } from '@lidofinance/lido-ethereum-sdk';
import { Address } from 'viem';
import { CsmSDKModule } from '../common/class-primitives/csm-sdk-module.js';
import { NodeOperatorId, Proof, WithToken } from '../common/index.js';
import { OperatorSDK } from '../operator-sdk/operator-sdk.js';
import type { AddNodeOperatorResult } from '../permissionless-gate-sdk/types.js';
import { SpendingSDK } from '../spending-sdk/spending-sdk.js';
import { AddressProof, AddVettedNodeOperatorProps, ClaimCuvrveProps } from './types.js';
export declare class IcsGateSDK extends CsmSDKModule<{
    spending: SpendingSDK;
    operator: OperatorSDK;
}> {
    private get icsContract();
    addNodeOperatorETH(props: AddVettedNodeOperatorProps): Promise<TransactionResult<AddNodeOperatorResult>>;
    addNodeOperatorStETH(props: AddVettedNodeOperatorProps): Promise<TransactionResult<AddNodeOperatorResult>>;
    addNodeOperatorWstETH(props: AddVettedNodeOperatorProps): Promise<TransactionResult<AddNodeOperatorResult>>;
    addNodeOperator(props: WithToken<AddVettedNodeOperatorProps>): Promise<TransactionResult<AddNodeOperatorResult>>;
    private parseProps;
    private getPermit;
    private receiptParseEvents;
    getCurveId(): Promise<bigint>;
    getTreeConfig(): Promise<{
        root: `0x${string}` | null;
        cid: string | null;
    }>;
    getProofTreeUrls(cid: string): string[];
    getProofTree(): Promise<void | import("@openzeppelin/merkle-tree").StandardMerkleTree<import("./types.js").AddressesTreeLeaf> | null>;
    getProof(address: Address): Promise<Proof | null>;
    getProofAndConsumed(address: Address): Promise<AddressProof>;
    isConsumed(address: Address): Promise<boolean>;
    isPaused(): Promise<boolean>;
    canClaimCurve(address: Address, nodeOperatorId: NodeOperatorId): Promise<boolean>;
    verifyProof(address: Address, proof: Proof): Promise<boolean>;
    claimCurve(props: ClaimCuvrveProps): Promise<TransactionResult>;
}
//# sourceMappingURL=ics-gate-sdk.d.ts.map