import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
declare const AudioAnalysisResultSchema: z.ZodObject<{
    level: z.ZodObject<{
        rms: z.ZodNumber;
        dbfs: z.ZodNumber;
    }, z.core.$strip>;
    classification: z.ZodOptional<z.ZodObject<{
        labels: z.ZodReadonly<z.ZodArray<z.ZodObject<{
            className: z.ZodString;
            originalClass: z.ZodOptional<z.ZodString>;
            score: z.ZodNumber;
        }, z.core.$strip>>>;
        inferenceMs: z.ZodNumber;
    }, z.core.$strip>>;
    timestamp: z.ZodNumber;
}, z.core.$strip>;
declare const AudioAnalysisSettingsSchema: z.ZodObject<{
    minConfidence: z.ZodDefault<z.ZodNumber>;
    allowedClasses: z.ZodDefault<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
declare const AudioClassificationResultSchema: z.ZodObject<{
    labels: z.ZodReadonly<z.ZodArray<z.ZodObject<{
        className: z.ZodString;
        originalClass: z.ZodOptional<z.ZodString>;
        score: z.ZodNumber;
    }, z.core.$strip>>>;
    rawLabels: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
        className: z.ZodString;
        originalClass: z.ZodOptional<z.ZodString>;
        score: z.ZodNumber;
    }, z.core.$strip>>>>;
    inferenceMs: z.ZodNumber;
}, z.core.$strip>;
/**
 * audio-analyzer — system-scoped compute cap.
 *
 * Owns the engine lifecycle (isReady / dispose), the stateless
 * `analyseChunk` call and the `classify` method. Per-device settings,
 * device-settings contribution and the `onAudioLevel` event live on the
 * paired `audio-analysis` cap (device-scoped, singleton, wrapper
 * defaultActive) so every camera gets its own bindings row and per-device
 * toggle. Pairing mirrors `stream-broker` (system) + `camera-streams`
 * (device) + `webrtc-session` (device) — single addon registers both.
 */
/**
 * Operator-facing audio-backend choice. 'auto' defers to the addon's
 * platform heuristic (Apple SoundAnalysis on macOS, YAMNet elsewhere).
 */
export declare const AUDIO_BACKEND_CHOICES: readonly [{
    readonly value: "auto";
    readonly label: "Auto (platform default)";
}, {
    readonly value: "apple-soundanalysis";
    readonly label: "Apple SoundAnalysis (macOS 12+)";
}, {
    readonly value: "yamnet-onnx";
    readonly label: "YAMNet ONNX (cross-platform)";
}];
export type AudioBackendChoice = typeof AUDIO_BACKEND_CHOICES[number]['value'];
/**
 * Shared shape of the audio-analyzer addon's global settings.
 * `audioBackend` = operator choice (wins); `probedBestAudioBackend`
 * = hint refreshed by `reprobeAudioEngine`. `selectedAudioModel`
 * replaces the orchestrator's legacy
 * `AgentPipelineSettings.audio.modelId`.
 *
 * NOTE — enable/disable is NOT stored here:
 *   - per-device: `audio-analysis` wrapper cap + `setWrapperActive`
 *     (binding system — the canonical gate).
 *   - cluster-wide: `addonDefaults['audio-classifier'].enabled` on
 *     the pipeline-orchestrator; drives whether the audio step
 *     appears in the resolved tree at all.
 */
export interface AudioAnalyzerGlobalConfig {
    readonly audioBackend: AudioBackendChoice;
    readonly probedBestAudioBackend: string;
    readonly selectedAudioModel: string;
}
export declare const DEFAULT_AUDIO_ANALYZER_CONFIG: AudioAnalyzerGlobalConfig;
export declare const audioAnalyzerCapability: {
    readonly name: "audio-analyzer";
    readonly scope: "system";
    readonly mode: "singleton";
    readonly methods: {
        readonly analyseChunk: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            chunk: z.ZodObject<{
                data: z.ZodCustom<Float32Array<ArrayBuffer>, Float32Array<ArrayBuffer>>;
                sampleRate: z.ZodNumber;
                channels: z.ZodNumber;
                timestamp: z.ZodNumber;
                deviceId: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strip>;
            settings: z.ZodObject<{
                minConfidence: z.ZodDefault<z.ZodNumber>;
                allowedClasses: z.ZodDefault<z.ZodArray<z.ZodString>>;
            }, z.core.$strip>;
        }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
            level: z.ZodObject<{
                rms: z.ZodNumber;
                dbfs: z.ZodNumber;
            }, z.core.$strip>;
            classification: z.ZodOptional<z.ZodObject<{
                labels: z.ZodReadonly<z.ZodArray<z.ZodObject<{
                    className: z.ZodString;
                    originalClass: z.ZodOptional<z.ZodString>;
                    score: z.ZodNumber;
                }, z.core.$strip>>>;
                inferenceMs: z.ZodNumber;
            }, z.core.$strip>>;
            timestamp: z.ZodNumber;
        }, z.core.$strip>>, "mutation">;
        readonly classify: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            data: z.ZodCustom<Float32Array<ArrayBuffer>, Float32Array<ArrayBuffer>>;
            sampleRate: z.ZodNumber;
            channels: z.ZodNumber;
            timestamp: z.ZodNumber;
            deviceId: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strip>, z.ZodObject<{
            labels: z.ZodReadonly<z.ZodArray<z.ZodObject<{
                className: z.ZodString;
                originalClass: z.ZodOptional<z.ZodString>;
                score: z.ZodNumber;
            }, z.core.$strip>>>;
            rawLabels: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
                className: z.ZodString;
                originalClass: z.ZodOptional<z.ZodString>;
                score: z.ZodNumber;
            }, z.core.$strip>>>>;
            inferenceMs: z.ZodNumber;
        }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
        readonly isReady: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodBoolean, import("./capability-definition.js").CapabilityMethodKind>;
        readonly dispose: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodVoid, "mutation">;
        /**
         * Re-run the host platform-probe for the audio backend and persist
         * the detected value into `probedBestAudioBackend`. Replaces the
         * orchestrator's legacy `AgentPipelineSettings.audio.engine` —
         * audio-analyzer now owns the choice. Operator `audioBackend` is
         * not touched; only the probed-best hint.
         */
        readonly reprobeAudioEngine: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{
            backend: z.ZodString;
        }, z.core.$strip>, "mutation">;
    };
};
export type IAudioAnalyzerProvider = InferProvider<typeof audioAnalyzerCapability>;
export { AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioClassificationResultSchema };
//# sourceMappingURL=audio-analyzer.cap.d.ts.map