import type { Pool } from "pg"; import { type FeatureDecision, type FeatureDefinition, type FeatureOwner, type FeatureSetting, type FeatureSnapshot } from "./feature-flags.js"; /** Trusted transport/worker identity, never deserialized from a request body. */ export interface FeatureViewer { principal: FeatureOwner | null; isAdmin: boolean; } export interface FeatureMutation { featureKey: string; expectedRevision: string; requestId: string; enabled?: boolean; allowUserOverride?: boolean; } export interface FeatureView { userId: number | null; flags: Array; } export interface FeatureMutationResult { featureKey: string; scope: "cluster" | "user"; userId: number | null; revision: string; setting: FeatureSetting | null; } export declare class FeatureStore { private readonly pool; private schema; constructor(pool: Pool, schema: string); /** Bound pool acquisition and server work without leaving abandoned work queued. */ private query; private call; private actor; revisions(): Promise>; snapshot(keys: string[]): Promise; read(viewer: FeatureViewer, scope: "cluster" | "user", userId?: number): Promise; mutate(viewer: FeatureViewer, scope: "cluster" | "user", input: FeatureMutation, unset?: boolean, userId?: number): Promise; changes(viewer: FeatureViewer, limit?: number): Promise; users(viewer: FeatureViewer, query?: string): Promise>; } //# sourceMappingURL=feature-store.d.ts.map