import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
/**
 * `addon-widgets` — system-scoped singleton aggregator cap. Public-facing
 * surface that admin-ui consumes through `useAddonWidgetsListWidgets()`.
 *
 * The provider iterates every `addon-widgets-source` (collection)
 * provider and emits `EnrichedWidgetMetadata[]` enriched with versioned
 * `bundleUrl` strings pointing at
 * `/api/addon-widgets/<addonId>/<bundle>?v=<mtime>`. The filesystem
 * `mtime` cache-buster lets the browser pick up addon rebuilds without
 * manual reload — same scheme used by `addon-pages`.
 *
 * The hub-local builtin `addon-widgets-aggregator` (see
 * `@camstack/core/builtins/addon-widgets-aggregator`) registers the
 * provider. Splitting the public aggregator from the raw collection
 * keeps both ends in codegen — there's no hand-written wrapper.
 */
declare const EnrichedWidgetMetadataSchema: z.ZodObject<{
    stableId: z.ZodString;
    label: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    icon: z.ZodOptional<z.ZodString>;
    remoteName: z.ZodString;
    bundle: z.ZodString;
    hosts: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
        "device-tab": "device-tab";
        dashboard: "dashboard";
        "integration-detail": "integration-detail";
    }>>>;
    requires: z.ZodObject<{
        deviceContext: z.ZodDefault<z.ZodBoolean>;
        integrationContext: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>;
    defaultSize: z.ZodDefault<z.ZodEnum<{
        xs: "xs";
        sm: "sm";
        md: "md";
        lg: "lg";
        xl: "xl";
    }>>;
    allowedSizes: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
        xs: "xs";
        sm: "sm";
        md: "md";
        lg: "lg";
        xl: "xl";
    }>>>>;
    defaultColumns: z.ZodDefault<z.ZodNumber>;
    defaultRows: z.ZodDefault<z.ZodNumber>;
    addonId: z.ZodString;
    bundleUrl: z.ZodString;
}, z.core.$strip>;
export declare const addonWidgetsCapability: {
    readonly name: "addon-widgets";
    readonly scope: "system";
    readonly mode: "singleton";
    readonly methods: {
        readonly listWidgets: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
            stableId: z.ZodString;
            label: z.ZodString;
            description: z.ZodOptional<z.ZodString>;
            icon: z.ZodOptional<z.ZodString>;
            remoteName: z.ZodString;
            bundle: z.ZodString;
            hosts: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
                "device-tab": "device-tab";
                dashboard: "dashboard";
                "integration-detail": "integration-detail";
            }>>>;
            requires: z.ZodObject<{
                deviceContext: z.ZodDefault<z.ZodBoolean>;
                integrationContext: z.ZodDefault<z.ZodBoolean>;
            }, z.core.$strip>;
            defaultSize: z.ZodDefault<z.ZodEnum<{
                xs: "xs";
                sm: "sm";
                md: "md";
                lg: "lg";
                xl: "xl";
            }>>;
            allowedSizes: z.ZodDefault<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
                xs: "xs";
                sm: "sm";
                md: "md";
                lg: "lg";
                xl: "xl";
            }>>>>;
            defaultColumns: z.ZodDefault<z.ZodNumber>;
            defaultRows: z.ZodDefault<z.ZodNumber>;
            addonId: z.ZodString;
            bundleUrl: z.ZodString;
        }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
    };
};
export type IAddonWidgetsAggregatorProvider = InferProvider<typeof addonWidgetsCapability>;
export { EnrichedWidgetMetadataSchema };
//# sourceMappingURL=addon-widgets.cap.d.ts.map