/**
 * Resolve from the in-memory transform message array (preferred — free).
 * Caches the verdict on first resolution.
 */
export declare function resolveCtxReduceAvailabilityFromMessages(sessionId: string, messages: ReadonlyArray<{
    info?: {
        role?: string;
        tools?: unknown;
    };
}>): boolean;
/** Availability verdict plus whether it is final for the session's lifetime. */
export interface CtxReduceAvailabilityVerdict {
    callable: boolean;
    /** True when resolved from the session's first user message (cached).
     *  False when the verdict is a provisional fail-open default — consumers
     *  that PERSIST state derived from the verdict (e.g. the system-prompt
     *  hash) must skip persistence until a frozen verdict exists, or a later
     *  final verdict flips the persisted bytes and busts the prompt cache. */
    frozen: boolean;
}
/**
 * Resolve from the OpenCode DB (system-prompt hook path — may run before the
 * transform has seen any messages). Falls back to "available" when the DB is
 * absent (Pi-only installs) or the read fails.
 */
export declare function resolveCtxReduceAvailability(sessionId: string): CtxReduceAvailabilityVerdict;
export declare function clearCtxReduceAvailability(sessionId: string): void;
//# sourceMappingURL=ctx-reduce-availability.d.ts.map