import { Address } from 'viem';
import { CsmSDKModule } from '../common/class-primitives/csm-sdk-module.js';
import { NodeOperator, NodeOperatorId, NodeOperatorInvite } from '../common/types.js';
import { ModuleSDK } from '../module-sdk/module-sdk.js';
import { SearchMode, Pagination } from './types.js';
export declare class DiscoverySDK extends CsmSDKModule<{
    module: ModuleSDK;
}> {
    private get discoveryContract();
    /**
     * Paginates through operators using the provided fetch function.
     *
     * Behavior:
     * - Without pagination parameter: Fetches ALL operators by querying total count and iterating through all pages
     * - With pagination parameter: Fetches ONLY ONE PAGE at the specified offset/limit
     *
     * @param fetchPage - Function to fetch a page of operators
     * @param pagination - Optional pagination parameters (offset, limit)
     * @returns Array of all fetched operators
     */
    private paginateOperators;
    getNodeOperatorIds(address: Address, searchMode?: SearchMode, pagination?: Pagination): Promise<NodeOperatorId[]>;
    getNodeOperatorsByAddress(address: Address, pagination?: Pagination): Promise<NodeOperator[]>;
    getNodeOperatorsByProposedAddress(address: Address, pagination?: Pagination): Promise<NodeOperatorInvite[]>;
}
//# sourceMappingURL=discovery-sdk.d.ts.map