import type { XyoAddress } from '@xyo-network/sdk';
import type { Intent } from '@xyo-network/xl1-protocol/protocol-lib';
/** Service for managing and querying stake intent declarations on the chain */
export interface StakeIntentService {
    /**
     * Gets the declared ranges for an address based on historical on-chain data
     * @param address The address to get the declared ranges for
     * @param intent The declared intent to filter for
     */
    getDeclaredCandidateRanges(address: XyoAddress, intent: Intent): Promise<readonly Readonly<[number, number]>[]>;
    /**
     * Gets the declared candidates for a block based on historical on-chain data
     * @param block The block number to get the declared candidates for
     * @param intent The declared intent to filter for
     */
    getDeclaredCandidatesForBlock(block: number, intent: Intent): Promise<XyoAddress[]>;
    /**
     * Gets the required minimum stake for a given intent
     * @param intent The declared intent to filter for
     * @returns The required minimum stake for the intent
     */
    getRequiredMinimumStakeForIntent(intent: Intent): bigint;
    /**
     * Checks if the address is staked for a block for a given intent
     * @param block The block number to check
     * @param intent The declared intent to filter for
     * @param address The address to check
     */
    isStakedForBlock(block: number, intent: Intent, address: XyoAddress): Promise<boolean>;
}
//# sourceMappingURL=StakeIntentService.d.ts.map