import { type DiscussionRecordingManifest } from '@xopcai/gateway-contract'; import type { NotesService } from '../notes/service.js'; import type { ProjectService } from '../projects/project-service.js'; import type { CreateDiscussionInput, DiscussionCaptureSettings, DiscussionDetail, DiscussionListResult, DiscussionMetrics, DiscussionTranscript, ListDiscussionsQuery } from './types.js'; import { editMeeting } from './edits.js'; export { DiscussionServiceError } from './errors.js'; export { DISCUSSION_MAX_DURATION_MS, DISCUSSION_AUDIO_MAX_BYTES, DISCUSSION_SEGMENT_MAX_BYTES } from '@xopcai/gateway-contract'; export declare class DiscussionService { private readonly notes; private readonly projects; private readonly emit?; private readonly createsInFlight; private readonly mutationTails; private readonly objectLinks; private readonly recordingOwner; private readonly recordingControllers; constructor(notes: NotesService, projects: ProjectService, emit?: (type: string, payload: unknown) => void); settings(): DiscussionCaptureSettings; acknowledgeConsent(policyVersion: number): DiscussionCaptureSettings; create(input: CreateDiscussionInput): Promise; private createOnce; get(id: string): Promise; getByNoteId(noteId: string): Promise; list(query?: ListDiscussionsQuery): DiscussionListResult; metrics(): DiscussionMetrics; transcript(id: string, revision?: number): DiscussionTranscript | null; uploadSegment(input: { discussionId: string; sequence: number; file: { buffer: Buffer; mimeType: string; }; startedAtMs: number; endedAtMs: number; sha256: string; }): DiscussionTranscript; correctSegment(id: string, sequence: number, displayText: string, expectedRevision: number, speakerLabel?: string, applyToSpeakerGroup?: boolean, expectedTranscriptRevision?: number): DiscussionTranscript; editSummary(id: string, input: Parameters[1]): import("@xopcai/gateway-contract").DiscussionOrganizationRecord; recordingChunks(id: string): import("@xopcai/gateway-contract").DiscussionRecordingChunk[]; reorganize(id: string, template?: string): Promise; uploadRecordingChunk(id: string, sequence: number, sha256: string, body: ReadableStream): Promise; recordingJob(id: string): import("@xopcai/gateway-contract").DiscussionRecordingJob; sealRecording(id: string, input: DiscussionRecordingManifest): Promise; /** Runs inside the existing sealer lifecycle; unfinished leases survive process restart. */ processRecordingJob(): Promise; retry(id: string): Promise; cancel(id: string): Promise; deleteAudio(id: string): Promise; unlinkInferredProject(id: string): Promise; private detail; private enqueueMutation; }