import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
declare const PublishInputSchema: z.ZodObject<{
    topic: z.ZodString;
    payload: z.ZodString;
    qos: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
    retain: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
declare const SubscribeInputSchema: z.ZodObject<{
    topic: z.ZodString;
    qos: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
    owner: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const SubscribeResultSchema: z.ZodObject<{
    success: z.ZodLiteral<true>;
    subscriptionId: z.ZodString;
}, z.core.$strip>;
declare const UnsubscribeInputSchema: z.ZodObject<{
    subscriptionId: z.ZodString;
}, z.core.$strip>;
declare const MqttStatusSchema: z.ZodObject<{
    connected: z.ZodBoolean;
    brokerUrl: z.ZodString;
    subscriptionCount: z.ZodNumber;
    error: z.ZodOptional<z.ZodString>;
    connectedAt: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
declare const SubscriptionInfoSchema: z.ZodObject<{
    subscriptionId: z.ZodString;
    topic: z.ZodString;
    qos: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
    owner: z.ZodString;
    createdAt: z.ZodNumber;
}, z.core.$strip>;
export declare const mqttProviderCapability: {
    readonly name: "mqtt-provider";
    readonly scope: "system";
    readonly mode: "collection";
    readonly internal: true;
    readonly methods: {
        /** Publish a message. Lazy-opens the connection if not yet active. */
        readonly publish: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            topic: z.ZodString;
            payload: z.ZodString;
            qos: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
            retain: z.ZodDefault<z.ZodBoolean>;
        }, z.core.$strip>, z.ZodObject<{
            success: z.ZodLiteral<true>;
        }, z.core.$strip>, "mutation">;
        /**
         * Subscribe to a topic. Returns a `subscriptionId` to pass to
         * `unsubscribe`. The addon refcounts broker subscriptions —
         * multiple consumers on the same topic share one upstream sub.
         * Messages arrive on `mqtt.message` events with `subscriptionIds[]`
         * listing which subscriptions matched.
         */
        readonly subscribe: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            topic: z.ZodString;
            qos: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
            owner: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodObject<{
            success: z.ZodLiteral<true>;
            subscriptionId: z.ZodString;
        }, z.core.$strip>, "mutation">;
        /** Release a specific subscription. Tears down the broker sub
         *  only when the last owner releases. Idempotent. */
        readonly unsubscribe: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            subscriptionId: z.ZodString;
        }, z.core.$strip>, z.ZodObject<{
            success: z.ZodLiteral<true>;
        }, z.core.$strip>, "mutation">;
        /** List active per-owner subscriptions on this provider. */
        readonly listSubscriptions: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodArray<z.ZodObject<{
            subscriptionId: z.ZodString;
            topic: z.ZodString;
            qos: z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>, z.ZodLiteral<2>]>;
            owner: z.ZodString;
            createdAt: z.ZodNumber;
        }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
        readonly getStatus: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{
            connected: z.ZodBoolean;
            brokerUrl: z.ZodString;
            subscriptionCount: z.ZodNumber;
            error: z.ZodOptional<z.ZodString>;
            connectedAt: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
    };
};
export type IMqttProvider = InferProvider<typeof mqttProviderCapability>;
export { PublishInputSchema, SubscribeInputSchema, SubscribeResultSchema, UnsubscribeInputSchema, MqttStatusSchema, SubscriptionInfoSchema, };
//# sourceMappingURL=mqtt-provider.cap.d.ts.map