import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; export interface PromptModeToolMetadata { name: string; promptSnippet?: string | undefined; promptGuidelines?: string[] | undefined; } export type GptPromptModeHandler = (active: boolean, context: ExtensionContext | undefined) => readonly PromptModeToolMetadata[] | void; export interface GptPromptModeRegistration { readonly active: boolean; dispose(): void; } /** Supply owned alternate prose, not schemas or arbitrary prompt transformations. * Called synchronously before capture, including when the mode has not changed. * Return current native definitions to refresh Pi's already-cloned prompt metadata. * Without PCC the callback receives false and standalone contracts stay intact. */ export declare function registerGptPromptMode(pi: ExtensionAPI, apply: GptPromptModeHandler): GptPromptModeRegistration; interface PromptMetadataOptions { toolSnippets: Record; toolGuidelines: Record; } /** Code/Notebook may register before PCC; request preparation at their capture boundary. */ export declare function prepareGptPromptMode(pi: ExtensionAPI, context: ExtensionContext, options?: PromptMetadataOptions): void; /** PCC composition-root API; all selection policy stays with its runtime plan. */ export declare function registerGptPromptModeBroker(pi: ExtensionAPI, isActive: (context: ExtensionContext) => boolean): { prepare(context: ExtensionContext, options?: PromptMetadataOptions): void; dispose(): void; }; export {};