import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
declare const ConfigTabDeclarationSchema: z.ZodObject<{
    id: z.ZodString;
    label: z.ZodString;
    icon: z.ZodString;
    order: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
declare const ConfigSectionWithValuesSchema: z.ZodObject<{
    id: z.ZodString;
    title: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    style: z.ZodOptional<z.ZodEnum<{
        card: "card";
        accordion: "accordion";
    }>>;
    defaultCollapsed: z.ZodOptional<z.ZodBoolean>;
    columns: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
    tab: z.ZodOptional<z.ZodString>;
    location: z.ZodOptional<z.ZodEnum<{
        settings: "settings";
        "top-tab": "top-tab";
    }>>;
    order: z.ZodOptional<z.ZodNumber>;
    fields: z.ZodArray<z.ZodAny>;
}, z.core.$strip>;
declare const SettingsSchemaWithValuesSchema: z.ZodObject<{
    tabs: z.ZodOptional<z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        label: z.ZodString;
        icon: z.ZodString;
        order: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>>;
    sections: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        title: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
        style: z.ZodOptional<z.ZodEnum<{
            card: "card";
            accordion: "accordion";
        }>>;
        defaultCollapsed: z.ZodOptional<z.ZodBoolean>;
        columns: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
        tab: z.ZodOptional<z.ZodString>;
        location: z.ZodOptional<z.ZodEnum<{
            settings: "settings";
            "top-tab": "top-tab";
        }>>;
        order: z.ZodOptional<z.ZodNumber>;
        fields: z.ZodArray<z.ZodAny>;
    }, z.core.$strip>>;
}, z.core.$strip>;
/** Patch object — keys are field names, values are the new field values. */
declare const SettingsPatchSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
/** Standard success response for update operations. */
declare const SettingsUpdateResultSchema: z.ZodObject<{
    success: z.ZodLiteral<true>;
}, z.core.$strip>;
/**
 * addon-settings — singleton gateway for three-level addon settings.
 *
 * Works like `device-manager`: a single hub-side provider that resolves
 * `addonId` to the target addon and delegates the call. For hub-local
 * addons the call is direct; for remote agents it proxies via the
 * per-addon Moleculer service.
 *
 * Replaces the `$addonHost` Moleculer service. Transport transparency
 * is handled by the provider implementation — callers (admin UI, other
 * addons via `ctx.api`) never know which node hosts the target addon.
 *
 * Three levels:
 *   - **addon**: addon-scoped settings (installation config, API keys, …)
 *   - **global**: settings applied to all devices by default
 *   - **device**: per-device overrides
 *
 * Optional `nodeId` allows explicit node targeting. When absent the
 * provider resolves the addon's host node automatically.
 */
/**
 * `addon-settings` is a **hub-centric** cap: the hub hosts the single
 * provider, and `nodeId` in the input is data for the hub provider's
 * internal dispatcher, not a routing hint for the cap-router. See
 * `CapabilityDefinition.nodeIdMode` for the contract.
 */
export declare const addonSettingsCapability: {
    readonly name: "addon-settings";
    readonly scope: "system";
    readonly mode: "singleton";
    readonly nodeIdMode: "data";
    readonly methods: {
        readonly getGlobalSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            addonId: z.ZodString;
            nodeId: z.ZodOptional<z.ZodString>;
            overlay: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
            tabs: z.ZodOptional<z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                label: z.ZodString;
                icon: z.ZodString;
                order: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strip>>>;
            sections: z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                title: z.ZodString;
                description: z.ZodOptional<z.ZodString>;
                style: z.ZodOptional<z.ZodEnum<{
                    card: "card";
                    accordion: "accordion";
                }>>;
                defaultCollapsed: z.ZodOptional<z.ZodBoolean>;
                columns: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
                tab: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodEnum<{
                    settings: "settings";
                    "top-tab": "top-tab";
                }>>;
                order: z.ZodOptional<z.ZodNumber>;
                fields: z.ZodArray<z.ZodAny>;
            }, z.core.$strip>>;
        }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
        readonly updateGlobalSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            addonId: z.ZodString;
            nodeId: z.ZodOptional<z.ZodString>;
            patch: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        }, z.core.$strip>, z.ZodObject<{
            success: z.ZodLiteral<true>;
        }, z.core.$strip>, "mutation">;
        readonly getDeviceSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            addonId: z.ZodString;
            deviceId: z.ZodNumber;
            nodeId: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
            tabs: z.ZodOptional<z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                label: z.ZodString;
                icon: z.ZodString;
                order: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strip>>>;
            sections: z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                title: z.ZodString;
                description: z.ZodOptional<z.ZodString>;
                style: z.ZodOptional<z.ZodEnum<{
                    card: "card";
                    accordion: "accordion";
                }>>;
                defaultCollapsed: z.ZodOptional<z.ZodBoolean>;
                columns: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
                tab: z.ZodOptional<z.ZodString>;
                location: z.ZodOptional<z.ZodEnum<{
                    settings: "settings";
                    "top-tab": "top-tab";
                }>>;
                order: z.ZodOptional<z.ZodNumber>;
                fields: z.ZodArray<z.ZodAny>;
            }, z.core.$strip>>;
        }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
        readonly updateDeviceSettings: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            addonId: z.ZodString;
            deviceId: z.ZodNumber;
            nodeId: z.ZodOptional<z.ZodString>;
            patch: z.ZodRecord<z.ZodString, z.ZodUnknown>;
        }, z.core.$strip>, z.ZodObject<{
            success: z.ZodLiteral<true>;
        }, z.core.$strip>, "mutation">;
    };
};
export type IAddonSettingsProvider = InferProvider<typeof addonSettingsCapability>;
export { SettingsSchemaWithValuesSchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, SettingsPatchSchema, SettingsUpdateResultSchema, };
//# sourceMappingURL=addon-settings.cap.d.ts.map