import { type CompactionCarryEntryData } from "../compaction/carry.js"; import { type ActiveCompactionOwner } from "../compaction/claim.js"; import { type FabricConfig } from "../config.js"; import { CompactController } from "../core/compact-controller.js"; import { type FabricActionDescriptor, type FabricInvocationContext, type FabricProvider, type FabricProviderListRequest } from "../protocol.js"; export declare const normalizeCompactArgs: import("./arg-normalization.js").ActionArgNormalizer; type CompactionConfig = FabricConfig["compaction"]; export interface CompactProviderOptions { /** Live compaction config (bands, output reserve, thresholds). */ config?: () => CompactionConfig; /** Session custom-entry writer (`pi.appendEntry`); required for carry updates. */ appendEntry?: (customType: string, data: CompactionCarryEntryData) => void; /** The extension holding the compaction owner claim, if any. */ owner?: () => ActiveCompactionOwner | undefined; } export declare class CompactProvider implements FabricProvider { #private; readonly controller: CompactController; private readonly options; readonly name = "compact"; readonly description = "Programmatic, advisory-then-committed context compaction for the host Pi session"; constructor(controller: CompactController, options?: CompactProviderOptions); list(request: FabricProviderListRequest, _context: FabricInvocationContext): Promise; describe(actionName: string, _context: FabricInvocationContext): Promise; prepareArguments(actionName: string, args: Record): Record; invoke(actionName: string, args: Record, context: FabricInvocationContext): Promise; } export {}; //# sourceMappingURL=compact-provider.d.ts.map