import { SettingsCategory } from "@edenapp/types";
import type { SettingsManager } from "./SettingsManager";
/**
 * Reserved app ID for Eden system settings.
 * No external app can use this ID.
 */
export declare const EDEN_SETTINGS_APP_ID = "com.eden";
/**
 * SettingsHandler - IPC layer for settings operations
 *
 * Provides multiple sets of endpoints:
 * 1. Regular endpoints - require "settings/rw" permission, scoped to caller's appId
 * 2. Superuser endpoints - require "settings/superuser" permission for cross-namespace access
 *
 * Eden system settings use appId "com.eden" via superuser endpoints.
 */
export declare class SettingsHandler {
    private settingsManager;
    constructor(settingsManager: SettingsManager);
    /**
     * Get a setting value (scoped to caller's app)
     */
    handleGet(args: {
        key: string;
        _callerAppId: string;
    }): Promise<{
        value: string | undefined;
    }>;
    /**
     * Set a setting value (scoped to caller's app)
     */
    handleSet(args: {
        key: string;
        value: string;
        _callerAppId: string;
    }): Promise<{
        success: boolean;
    }>;
    /**
     * List all settings keys (scoped to caller's app)
     */
    handleList(args: {
        _callerAppId: string;
    }): Promise<{
        keys: string[];
    }>;
    /**
     * Get all settings with values (scoped to caller's app)
     */
    handleGetAll(args: {
        _callerAppId: string;
    }): Promise<{
        settings: Record<string, string>;
    }>;
    /**
     * Reset a setting to default (scoped to caller's app)
     */
    handleReset(args: {
        key: string;
        schema?: SettingsCategory[];
        _callerAppId: string;
    }): Promise<{
        success: boolean;
    }>;
    /**
     * Get a setting from any app's namespace (superuser only)
     */
    handleGetSuperuser(args: {
        appId: string;
        key: string;
    }): Promise<{
        value: string | undefined;
    }>;
    /**
     * Set a setting in any app's namespace (superuser only)
     */
    handleSetSuperuser(args: {
        appId: string;
        key: string;
        value: string;
    }): Promise<{
        success: boolean;
    }>;
    /**
     * List all settings in any app's namespace (superuser only)
     */
    handleListSuperuser(args: {
        appId: string;
    }): Promise<{
        keys: string[];
    }>;
    /**
     * Get all settings with values for any app (superuser only)
     */
    handleGetAllSuperuser(args: {
        appId: string;
    }): Promise<{
        settings: Record<string, string>;
    }>;
    /**
     * Reset a setting for any app (superuser only)
     */
    handleResetSuperuser(args: {
        appId: string;
        key: string;
        schema?: SettingsCategory[];
    }): Promise<{
        success: boolean;
    }>;
    /**
     * Get the Eden settings schema
     */
    handleSchema(): Promise<{
        schema: SettingsCategory[];
    }>;
}
//# sourceMappingURL=SettingsHandler.d.ts.map