import { PersistentStore } from '../state/persistent-store.js';
import type { ChannelIngressPolicyInput, ChannelPolicyAuditRecord, ChannelPolicyDecision, ChannelPolicyRecord, ChannelSurface } from './types.js';
interface ChannelPolicySnapshot extends Record<string, unknown> {
    readonly policies: readonly ChannelPolicyRecord[];
    readonly audit: readonly ChannelPolicyAuditRecord[];
}
export declare class ChannelPolicyManager {
    private readonly store;
    private readonly policies;
    private readonly audit;
    private loaded;
    constructor(options: {
        readonly store?: PersistentStore<ChannelPolicySnapshot> | undefined;
        readonly storePath?: string | undefined;
    });
    start(): Promise<void>;
    listPolicies(): ChannelPolicyRecord[];
    listAudit(limit?: number): ChannelPolicyAuditRecord[];
    getPolicy(surface: ChannelSurface): ChannelPolicyRecord;
    upsertPolicy(surface: ChannelSurface, patch: Partial<Omit<ChannelPolicyRecord, 'surface' | 'updatedAt'>>): Promise<ChannelPolicyRecord>;
    evaluateIngress(input: ChannelIngressPolicyInput): Promise<ChannelPolicyDecision>;
    private persist;
}
export {};
//# sourceMappingURL=policy-manager.d.ts.map