import { z } from 'zod';
import { ReadableStream } from 'node:stream/web';
import type { ServiceContext, EventStream, Expand } from '../types';
export declare const schemas: {
    initContext: z.ZodTuple<[z.ZodString, z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>], null>;
    addSpeaker: z.ZodTuple<[z.ZodString, z.ZodUnion<[z.ZodType<Float32Array<ArrayBuffer>, z.ZodTypeDef, Float32Array<ArrayBuffer>>, z.ZodRecord<z.ZodString, z.ZodUnknown>]>], null>;
    synthesize: z.ZodTuple<[z.ZodString, z.ZodObject<{
        text: z.ZodString;
        options: z.ZodOptional<z.ZodObject<{
            speaker: z.ZodOptional<z.ZodString>;
        }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
            speaker: z.ZodOptional<z.ZodString>;
        }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
            speaker: z.ZodOptional<z.ZodString>;
        }, z.ZodTypeAny, "passthrough">>>;
    }, "strip", z.ZodTypeAny, {
        text: string;
        options?: z.objectOutputType<{
            speaker: z.ZodOptional<z.ZodString>;
        }, z.ZodTypeAny, "passthrough"> | undefined;
    }, {
        text: string;
        options?: z.objectInputType<{
            speaker: z.ZodOptional<z.ZodString>;
        }, z.ZodTypeAny, "passthrough"> | undefined;
    }>], null>;
    releaseContext: z.ZodTuple<[z.ZodString], null>;
};
export interface AddSpeakerResult {
    speakerId: string;
    type: 'embed' | 'config';
}
export interface SynthesizeResult {
    filename: string;
    sampling_rate: number;
    channels: number;
}
export interface Service {
    initContext: (ctx: ServiceContext, ...args: z.infer<typeof schemas.initContext>) => ReadableStream<Expand<EventStream>>;
    addSpeaker: (ctx: ServiceContext, ...args: z.infer<typeof schemas.addSpeaker>) => Promise<AddSpeakerResult>;
    synthesize: (ctx: ServiceContext, ...args: z.infer<typeof schemas.synthesize>) => Promise<SynthesizeResult>;
    releaseContext: (ctx: ServiceContext, ...args: z.infer<typeof schemas.releaseContext>) => Promise<{
        released: boolean;
        alreadyReleased?: boolean;
    }>;
}
declare const _default: Service;
export default _default;
