import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
declare const PcmSampleFormatSchema: z.ZodEnum<{
    f32le: "f32le";
    s16le: "s16le";
}>;
declare const AudioCodecInfoSchema: z.ZodObject<{
    codec: z.ZodString;
    canDecode: z.ZodBoolean;
    canEncode: z.ZodBoolean;
    label: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const AudioDecodeSessionConfigSchema: z.ZodObject<{
    codec: z.ZodString;
    sourceSampleRate: z.ZodNumber;
    sourceChannels: z.ZodNumber;
    extraData: z.ZodOptional<z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
    targetSampleRate: z.ZodNumber;
    targetChannels: z.ZodNumber;
    targetFormat: z.ZodOptional<z.ZodEnum<{
        f32le: "f32le";
        s16le: "s16le";
    }>>;
    idleMs: z.ZodOptional<z.ZodNumber>;
    tag: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const AudioEncodeSessionConfigSchema: z.ZodObject<{
    codec: z.ZodString;
    sourceSampleRate: z.ZodNumber;
    sourceChannels: z.ZodNumber;
    sourceFormat: z.ZodOptional<z.ZodEnum<{
        f32le: "f32le";
        s16le: "s16le";
    }>>;
    targetSampleRate: z.ZodNumber;
    targetChannels: z.ZodNumber;
    bitrateKbps: z.ZodOptional<z.ZodNumber>;
    idleMs: z.ZodOptional<z.ZodNumber>;
    tag: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
declare const AudioPcmChunkSchema: z.ZodObject<{
    data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
    sampleRate: z.ZodNumber;
    channels: z.ZodNumber;
    format: z.ZodEnum<{
        f32le: "f32le";
        s16le: "s16le";
    }>;
    pts: z.ZodNumber;
}, z.core.$strip>;
declare const AudioEncodedChunkSchema: z.ZodObject<{
    data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
    codec: z.ZodString;
    pts: z.ZodNumber;
    frameComplete: z.ZodBoolean;
}, z.core.$strip>;
/**
 * audio-codec — bidirectional PCM ↔ encoded audio I/O box.
 *
 * Independent per-consumer sessions. The provider runs decode + resample
 * (or resample + encode) inside the session so a 16kHz mono ASA
 * subscriber and a 48kHz stereo WebRTC subscriber on the same source
 * stream don't share resamplers.
 *
 * Singleton on each node. Decoder and encoder live in the same provider
 * because they share the underlying libav contexts (node-av today,
 * pluggable later) — operators always install one or the other together.
 */
export declare const audioCodecCapability: {
    readonly name: "audio-codec";
    readonly scope: "system";
    readonly mode: "singleton";
    readonly methods: {
        /** Probe the local runtime and return the supported codec matrix. */
        readonly listSupportedCodecs: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
            codec: z.ZodString;
            canDecode: z.ZodBoolean;
            canEncode: z.ZodBoolean;
            label: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
        /** Cheap predicate — does the runtime support `(codec, kind)`? */
        readonly canHandle: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            codec: z.ZodString;
            kind: z.ZodEnum<{
                decode: "decode";
                encode: "encode";
            }>;
        }, z.core.$strip>, z.ZodBoolean, import("./capability-definition.js").CapabilityMethodKind>;
        readonly createDecodeSession: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            codec: z.ZodString;
            sourceSampleRate: z.ZodNumber;
            sourceChannels: z.ZodNumber;
            extraData: z.ZodOptional<z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>>;
            targetSampleRate: z.ZodNumber;
            targetChannels: z.ZodNumber;
            targetFormat: z.ZodOptional<z.ZodEnum<{
                f32le: "f32le";
                s16le: "s16le";
            }>>;
            idleMs: z.ZodOptional<z.ZodNumber>;
            tag: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodObject<{
            sessionId: z.ZodString;
            nodeId: z.ZodString;
        }, z.core.$strip>, "mutation">;
        readonly createEncodeSession: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            codec: z.ZodString;
            sourceSampleRate: z.ZodNumber;
            sourceChannels: z.ZodNumber;
            sourceFormat: z.ZodOptional<z.ZodEnum<{
                f32le: "f32le";
                s16le: "s16le";
            }>>;
            targetSampleRate: z.ZodNumber;
            targetChannels: z.ZodNumber;
            bitrateKbps: z.ZodOptional<z.ZodNumber>;
            idleMs: z.ZodOptional<z.ZodNumber>;
            tag: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodObject<{
            sessionId: z.ZodString;
            nodeId: z.ZodString;
        }, z.core.$strip>, "mutation">;
        readonly closeSession: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            sessionId: z.ZodString;
            nodeId: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodVoid, "mutation">;
        /** Push one encoded audio frame into a decode session. */
        readonly pushEncodedFrame: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            sessionId: z.ZodString;
            nodeId: z.ZodOptional<z.ZodString>;
            data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
            pts: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strip>, z.ZodVoid, "mutation">;
        /** Pull up to `maxCount` PCM chunks from a decode session. */
        readonly pullPcm: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            sessionId: z.ZodString;
            nodeId: z.ZodOptional<z.ZodString>;
            maxCount: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>, z.ZodArray<z.ZodObject<{
            data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
            sampleRate: z.ZodNumber;
            channels: z.ZodNumber;
            format: z.ZodEnum<{
                f32le: "f32le";
                s16le: "s16le";
            }>;
            pts: z.ZodNumber;
        }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
        /** Push one PCM chunk into an encode session. */
        readonly pushPcm: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            sessionId: z.ZodString;
            nodeId: z.ZodOptional<z.ZodString>;
            data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
            pts: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strip>, z.ZodVoid, "mutation">;
        /** Pull up to `maxCount` encoded chunks from an encode session. */
        readonly pullEncoded: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            sessionId: z.ZodString;
            nodeId: z.ZodOptional<z.ZodString>;
            maxCount: z.ZodDefault<z.ZodNumber>;
        }, z.core.$strip>, z.ZodArray<z.ZodObject<{
            data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
            codec: z.ZodString;
            pts: z.ZodNumber;
            frameComplete: z.ZodBoolean;
        }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
        /** Flush any pending encoded output (call before close on graceful tear). */
        readonly flushEncode: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            sessionId: z.ZodString;
            nodeId: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodArray<z.ZodObject<{
            data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
            codec: z.ZodString;
            pts: z.ZodNumber;
            frameComplete: z.ZodBoolean;
        }, z.core.$strip>>, "mutation">;
        readonly listActiveSessions: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
            sessionId: z.ZodString;
            kind: z.ZodEnum<{
                decode: "decode";
                encode: "encode";
            }>;
            codec: z.ZodString;
            sourceSampleRate: z.ZodNumber;
            sourceChannels: z.ZodNumber;
            targetSampleRate: z.ZodNumber;
            targetChannels: z.ZodNumber;
            format: z.ZodEnum<{
                f32le: "f32le";
                s16le: "s16le";
            }>;
            tag: z.ZodOptional<z.ZodString>;
            createdAtMs: z.ZodNumber;
            lastActivityMs: z.ZodNumber;
            framesIn: z.ZodNumber;
            framesOut: z.ZodNumber;
        }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
    };
};
export type IAudioCodecCapProvider = InferProvider<typeof audioCodecCapability>;
export { AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSessionConfigSchema, AudioPcmChunkSchema, AudioEncodedChunkSchema, PcmSampleFormatSchema, };
//# sourceMappingURL=audio-codec.cap.d.ts.map