export interface CanonicalFundingCandidate { outputId: number; satoshis: number; } /** Pure exact / least-over / largest-under change selection policy. */ export declare function selectCanonicalChange(outputs: T[], targetSatoshis: number, exactSatoshis?: number): T | undefined; /** * Stateful form of the canonical selector for allocating many inputs from one * candidate set. It preserves exact / least-over / largest-under ordering but * sorts once instead of filtering and sorting the full set per input. */ export declare class CanonicalChangeSelector { private readonly sorted; private readonly allocated; constructor(outputs: readonly T[]); take(targetSatoshis: number, exactSatoshis?: number): T | undefined; release(outputId: number): void; private allocate; private lowerBound; } export declare function repeatableRandom(randomVals?: number[]): () => number; /** Pure Fisher-Yates vout assignment shared by legacy and batch planning. */ export declare function randomizeOutputVouts(outputs: T[], randomVals?: number[]): void; //# sourceMappingURL=actionPlanning.d.ts.map