import { Container, type Focusable, type Input } from "@caupulican/pi-tui"; import { type ResourceProfileKind, type ResourceProfileSettings } from "../../../core/settings-manager.ts"; export interface ProfileResourceItem { /** Collision-safe value persisted into the profile filter. */ id: string; /** Human-facing name; defaults to id. */ label?: string; path?: string; description?: string; } export interface ProfileResourceEditorKind { kind: ResourceProfileKind; label: string; items: ProfileResourceItem[]; } export interface ProfileResourceEditorOptions { profileName: string; profileScope: string; initialResources: ResourceProfileSettings; kinds: ProfileResourceEditorKind[]; onSave: (resources: ResourceProfileSettings) => void; onCancel: () => void; onScopeChange?: () => void; onEdit?: (id: string, path: string, kind: ResourceProfileKind) => void; cwd?: string; agentDir?: string; externalResourceRoots?: string[]; } export declare function resolveResourceEditPath(_id: string, filePath: string | undefined, kind: ResourceProfileKind): string | undefined; export declare function classifyResourceSource(filePath: string | undefined, cwd: string, agentDir: string, externalRoots: string[]): "catalog" | "user" | "project" | "bundled"; export declare class ProfileResourceEditorComponent extends Container implements Focusable { private profileName; private profileScope; private kinds; private enabledByKind; private framingByKind; private missingIdsByKind; /** The filter each kind was decoded from, so an all-enabled save preserves an enumerated grant * (or an already-wildcard grant) instead of widening it to allow:["*"]. */ private originalFilterByKind; private currentKindIndex; private cwd; private agentDir; private externalResourceRoots; private readonly listState; private searchInput; private kindHeaderText; private listContainer; private descriptionText; private footerText; private searchSurface; private isDirty; private maxVisible; get focused(): boolean; set focused(value: boolean); private onSave; private onCancel; private onScopeChange?; private onEdit?; constructor(options: ProfileResourceEditorOptions); private getKindHeaderText; private getCurrentKind; private getCurrentEnabledSet; private buildItems; private getFooterText; private refresh; private updateList; handleInput(data: string): void; private persistChanges; getSearchInput(): Input; } //# sourceMappingURL=profile-resource-editor.d.ts.map