import type { ProxyTokenBudgetLease, ProxyTokenBudgetPolicy, ProxyTokenBudgetReservation, ProxyTokenBudgetRpcResponse, ProxyTokenBudgetSnapshot } from "../types/index.js";
/** Shared private session scope across every protocol and provider fallback. */
export declare function getProxyTokenBudgetSessionKey(headers: Pick<Headers, "get">): string;
/** Local admission failures must not be hidden by automatic provider fallback. */
export declare function getProxyTokenBudgetError(error: unknown): {
    code: string;
    status: 400 | 429 | 503;
    retryable: false;
    message: string;
} | null;
/** Invalid configured limits fail closed instead of silently disabling protection. */
export declare function parseProxyTokenBudgetPolicy(value: unknown): ProxyTokenBudgetPolicy;
export declare function getProxyTokenBudgetPolicy(): ProxyTokenBudgetPolicy | undefined;
/** One atomic coordinator per supervisor; requests never write budget state to disk. */
export declare class ProxyTokenBudgetCoordinator {
    private readonly scope;
    private readonly now;
    private readonly maxKeys;
    private readonly maxLeases;
    private readonly buckets;
    private readonly leases;
    constructor(scope?: "process" | "supervisor", now?: () => number, maxKeys?: number, maxLeases?: number);
    private bucket;
    reserve(input: ProxyTokenBudgetReservation, owner?: string): {
        leaseId: string;
        snapshot: ProxyTokenBudgetSnapshot;
    };
    settle(leaseId: string, owner: string, actualTotalTokens?: number, cancelled?: boolean): ProxyTokenBudgetSnapshot | undefined;
    ownerExited(owner: string): void;
}
/** Parent-side IPC hook is shared by every active and draining generation. */
export declare function handleProxyTokenBudgetMessage(value: unknown, owner: {
    pid: number;
    generation: number;
}, reply: (response: ProxyTokenBudgetRpcResponse) => void): boolean;
export declare function releaseProxyTokenBudgetOwner(pid: number, generation: number): void;
/** Reserve before each upstream attempt; unknown provider usage retains its estimate. */
export declare function reserveProxyTokenBudget(input: ProxyTokenBudgetReservation): Promise<ProxyTokenBudgetLease>;
/** Accounting acknowledgement loss must not turn delivered provider success into a stream failure. */
export declare function settleProxyTokenBudget(lease: ProxyTokenBudgetLease, actualTotalTokens?: number): Promise<void>;
