import type { SettingsCategory, SettingsPanelActionResponse, SettingsPanelDefinition, SettingsPanelProvider, SettingsPanelRegistration, SettingsPanelRegistrationOptions, SettingsPanelResponse, SettingsPanelSummary, SettingsPanelValue, UserGrantOption } from "@edenapp/types"; import type { DaemonManager } from "../daemon"; import { ExecutionContext } from "../execution"; import { CommandRegistry, EdenEmitter, IPCBridge } from "../ipc"; import type { PackageManager } from "../package-manager"; import { PackageCatalog } from "../package-manager/PackageCatalog"; import { SessionContext, type SessionManager } from "../session"; import { SettingsManager } from "./SettingsManager"; import { type InternalPanelDefinition } from "./SettingsPanelCodec"; import type { PanelRenderer } from "./SettingsPanelRecord"; interface SettingsPanelNamespaceEvents { "panels-changed": { reason: "catalog" | "grants" | "session" | "state" | "visibility"; }; } export declare class SettingsPanelManager extends EdenEmitter { private readonly settingsManager; private readonly packageCatalog; private readonly sessionContext; private readonly executionContext; private readonly panels; private lifecycleConnected; constructor(ipcBridge: IPCBridge, commandRegistry: CommandRegistry, settingsManager: SettingsManager, packageCatalog: PackageCatalog, sessionContext: SessionContext, executionContext: ExecutionContext); /** * Register a trusted host panel. Declarations are copied and callbacks remain * private to this manager. */ registerPanel(definition: SettingsPanelDefinition, provider: SettingsPanelProvider, options?: SettingsPanelRegistrationOptions): SettingsPanelRegistration; /** Register an Eden-owned panel, including private custom renderers. */ registerBuiltinPanel(definition: InternalPanelDefinition, provider: SettingsPanelProvider, renderer?: PanelRenderer): SettingsPanelRegistration; connectLifecycle(sessionManager: SessionManager, packageManager: PackageManager, daemonManager: DaemonManager): void; synchronizeManifestPanels(): void; registerGeneratedBuiltinCategory(category: SettingsCategory): void; listPanels(): Promise; loadPanel(panelId: string): Promise; invokeAction(panelId: string, actionId: string, input: SettingsPanelValue | undefined): Promise; /** Return every grant declared by the current panel catalog. */ listGrantOptions(): UserGrantOption[]; private register; private synchronizeManifestPanel; private removeManifestPanel; private registerGeneratedPanel; private activeSnapshot; private sameSession; private recheck; private providerContext; private authorizationError; private notFoundError; private sessionChangedError; private errorMessage; dispose(): void; } export {}; //# sourceMappingURL=SettingsPanelManager.d.ts.map