import type { Call } from "@slackwsh/contracts";
import { ObjectStorageService } from "../messages/object-storage.service";
export interface LiveKitConfig {
    url: string;
    publicUrl: string;
    apiKey: string;
    apiSecret: string;
}
export declare class LiveKitService {
    private readonly storage;
    private readonly logger;
    constructor(storage: ObjectStorageService);
    config(): LiveKitConfig | null;
    /** `--dev` is down when Docker isn't running; fail fast so the client meshes. */
    private isReachable;
    mintParticipantToken(call: Call, userId: number, name?: string): Promise<{
        configured: boolean;
        url: string | null;
        token: string | null;
        roomName: string | null;
        identity: string | null;
    }>;
    startRecording(call: Call, actorUserId: number): Promise<Call>;
    stopRecording(call: Call, actorUserId: number): Promise<Call>;
    dialPstn(call: Call, actorUserId: number, e164: string): Promise<Call>;
    handleWebhook(rawBody: string, authorization: string | undefined): Promise<void>;
    private transcribe;
    private summarise;
    deleteRoom(roomName: string): Promise<void>;
}
export declare function parseLivekitRoom(name: string): {
    workspaceId: number;
    callId: number;
} | null;
//# sourceMappingURL=livekit.service.d.ts.map