import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
/**
 * `addon-widgets-source` — collection cap exposing per-addon raw widget
 * declarations. Mirrors the addon-pages split: every addon shipping
 * widgets registers a provider on this collection cap; the hub-local
 * aggregator (`addon-widgets`, see `addon-widgets.cap.ts`) walks the
 * collection, stamps versioned `bundleUrl`s onto each declaration, and
 * exposes the public listing surface that admin-ui consumes.
 *
 * The split exists because the public listing has a different output
 * shape (flat enriched metadata with `addonId` + `bundleUrl`) than the
 * per-provider raw declarations. Both ends flow through codegen.
 */
declare const WidgetHostEnum: z.ZodEnum<{
    "device-tab": "device-tab";
    dashboard: "dashboard";
    "integration-detail": "integration-detail";
}>;
declare const WidgetSizeEnum: z.ZodEnum<{
    xs: "xs";
    sm: "sm";
    md: "md";
    lg: "lg";
    xl: "xl";
}>;
declare const WidgetMetadataSchema: 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>;
}, z.core.$strip>;
export declare const addonWidgetsSourceCapability: {
    readonly name: "addon-widgets-source";
    readonly scope: "system";
    readonly mode: "collection";
    readonly internal: true;
    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>;
        }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
    };
};
export type IAddonWidgetsSourceProvider = InferProvider<typeof addonWidgetsSourceCapability>;
export { WidgetMetadataSchema, WidgetHostEnum, WidgetSizeEnum };
//# sourceMappingURL=addon-widgets-source.cap.d.ts.map