import type { WorkflowState } from '../../../core/models/types.js';
import type { SystemStepInputResolutionContext } from '../../../core/workflow/system/system-step-services.js';
interface NumberedCandidate {
    number: number;
}
export declare function getCachedCandidateSnapshot<T>(cacheKey: string, loadCandidates: () => T[], resolutionContext?: SystemStepInputResolutionContext): T[];
export declare function readResolvedBinding(resolutionContext: SystemStepInputResolutionContext | undefined, bindingName: string): Record<string, unknown> | undefined;
export declare function readResolvedBindingNumber(resolutionContext: SystemStepInputResolutionContext | undefined, bindingName: string): number | undefined;
export declare function readPreviousSelectedNumber(state: WorkflowState, stepName: string, bindingName: string): number | undefined;
export declare function selectNextCandidate<T extends NumberedCandidate>(candidates: T[], previousNumber: number | undefined): T | undefined;
export {};
//# sourceMappingURL=system-selection-helpers.d.ts.map