import { C as PHBaseState, E as PHDocumentState, F as UpgradeManifest, M as SetNameAction, N as SignalDispatch, O as RedoAction, P as UndoAction, S as PHAuthState, c as DocumentModelGlobalState, d as DocumentModelUtils, g as LoadStateAction, j as SchemaPruneAction, k as Reducer, r as PHDocumentController, t as ActionMap, w as PHDocument, y as NOOPAction } from "../../index-DQ5mRIVf.js";
import { a as ZodString, c as $strip, i as ZodObject, o as ZodType, r as ZodLiteral, s as $ZodTypeInternals, t as ZodAny } from "../../schemas-BLV80XhZ.js";
import { t as DocumentDispatch } from "../../index-B1aYlvX9.js";
import { A as SetChannelIdAction, C as DeafenAction, D as UndeafenAction, E as MuteAction, M as VoiceConfigAction, O as UnmuteAction, S as VoiceAction, T as LeaveVoiceAction, _ as SetMaxParticipantsInput, a as Exact, b as VoiceParticipant, c as JoinVoiceInput, d as MakeMaybe, f as MakeOptional, g as SetChannelIdInput, h as Scalars, i as DeafenInput, j as SetMaxParticipantsAction, k as VoiceVoiceAction, l as LeaveVoiceInput, m as MuteInput, n as VoiceLocalState, o as Incremental, p as Maybe, r as VoicePHState, s as InputMaybe, t as VoiceDocument, u as MakeEmpty, v as UndeafenInput, w as JoinVoiceAction, x as VoiceState, y as UnmuteInput } from "../../types-B4j5h3uv.js";

//#region document-models/voice/v1/gen/document-model.d.ts
declare const documentModel: DocumentModelGlobalState;
declare namespace creators_d_exports {
  export { setChannelId, setMaxParticipants };
}
declare const setChannelId: (input: SetChannelIdInput) => SetChannelIdAction;
declare const setMaxParticipants: (input: SetMaxParticipantsInput) => SetMaxParticipantsAction;
declare namespace creators_d_exports$1 {
  export { deafen, joinVoice, leaveVoice, mute, undeafen, unmute };
}
declare const joinVoice: (input: JoinVoiceInput) => JoinVoiceAction;
declare const leaveVoice: (input: LeaveVoiceInput) => LeaveVoiceAction;
declare const mute: (input: MuteInput) => MuteAction;
declare const unmute: (input: UnmuteInput) => UnmuteAction;
declare const deafen: (input: DeafenInput) => DeafenAction;
declare const undeafen: (input: UndeafenInput) => UndeafenAction;
//#endregion
//#region document-models/voice/v1/gen/ph-factories.d.ts
declare function defaultGlobalState(): VoiceState;
declare function defaultLocalState(): VoiceLocalState;
declare function defaultPHState(): VoicePHState;
declare function createState(baseState?: Partial<PHBaseState>, globalState?: Partial<VoiceState>, localState?: Partial<VoiceLocalState>): VoicePHState;
/**
 * Creates a VoiceDocument with custom global and local state
 * This properly handles the PHBaseState requirements while allowing
 * document-specific state to be set.
 */
declare function createVoiceDocument(state?: Partial<{
  auth?: Partial<PHAuthState>;
  document?: Partial<PHDocumentState>;
  global?: Partial<VoiceState>;
  local?: Partial<VoiceLocalState>;
}>): VoiceDocument;
//#endregion
//#region document-models/voice/v1/gen/utils.d.ts
declare const initialGlobalState: VoiceState;
declare const initialLocalState: VoiceLocalState;
//#endregion
//#region document-models/voice/v1/gen/reducer.d.ts
declare const reducer: Reducer<VoicePHState>;
//#endregion
//#region document-models/voice/v1/gen/controller.d.ts
declare const VoiceController: new (initialDocument?: PHDocument<VoicePHState> | undefined) => PHDocumentController<VoicePHState> & ActionMap<VoiceAction, PHDocumentController<VoicePHState>>;
//#endregion
//#region document-models/voice/v1/gen/schema/zod.d.ts
type Properties<T> = Required<{ [K in keyof T]: ZodType<T[K]> }>;
type definedNonNullAny = {};
declare const isDefinedNonNullAny: (v: any) => v is definedNonNullAny;
declare const definedNonNullAnySchema: ZodAny & ZodType<definedNonNullAny, any, $ZodTypeInternals<definedNonNullAny, any>>;
declare function DeafenInputSchema(): ZodObject<Properties<DeafenInput>>;
declare function JoinVoiceInputSchema(): ZodObject<Properties<JoinVoiceInput>>;
declare function LeaveVoiceInputSchema(): ZodObject<Properties<LeaveVoiceInput>>;
declare function MuteInputSchema(): ZodObject<Properties<MuteInput>>;
declare function SetChannelIdInputSchema(): ZodObject<Properties<SetChannelIdInput>>;
declare function SetMaxParticipantsInputSchema(): ZodObject<Properties<SetMaxParticipantsInput>>;
declare function UndeafenInputSchema(): ZodObject<Properties<UndeafenInput>>;
declare function UnmuteInputSchema(): ZodObject<Properties<UnmuteInput>>;
declare function VoiceParticipantSchema(): ZodObject<Properties<VoiceParticipant>>;
declare function VoiceStateSchema(): ZodObject<Properties<VoiceState>>;
//#endregion
//#region document-models/voice/v1/gen/document-type.d.ts
declare const voiceDocumentType = "powerchat/voice";
//#endregion
//#region document-models/voice/v1/gen/document-schema.d.ts
/** Schema for validating the header object of a Voice document */
declare const VoiceDocumentHeaderSchema: ZodObject<{
  id: ZodString;
  name: ZodString;
  createdAtUtcIso: ZodString;
  lastModifiedAtUtcIso: ZodString;
  documentType: ZodLiteral<"powerchat/voice">;
}, $strip>;
/** Schema for validating the state object of a Voice document */
declare const VoicePHStateSchema: ZodObject<{
  global: ZodObject<Required<{
    activeParticipants: ZodType<VoiceParticipant[], unknown, $ZodTypeInternals<VoiceParticipant[], unknown>>;
    channelId: ZodType<Maybe<string>, unknown, $ZodTypeInternals<Maybe<string>, unknown>>;
    maxParticipants: ZodType<Maybe<number>, unknown, $ZodTypeInternals<Maybe<number>, unknown>>;
  }>, $strip>;
}, $strip>;
declare const VoiceDocumentSchema: ZodObject<{
  header: ZodObject<{
    id: ZodString;
    name: ZodString;
    createdAtUtcIso: ZodString;
    lastModifiedAtUtcIso: ZodString;
    documentType: ZodLiteral<"powerchat/voice">;
  }, $strip>;
  state: ZodObject<{
    global: ZodObject<Required<{
      activeParticipants: ZodType<VoiceParticipant[], unknown, $ZodTypeInternals<VoiceParticipant[], unknown>>;
      channelId: ZodType<Maybe<string>, unknown, $ZodTypeInternals<Maybe<string>, unknown>>;
      maxParticipants: ZodType<Maybe<number>, unknown, $ZodTypeInternals<Maybe<number>, unknown>>;
    }>, $strip>;
  }, $strip>;
  initialState: ZodObject<{
    global: ZodObject<Required<{
      activeParticipants: ZodType<VoiceParticipant[], unknown, $ZodTypeInternals<VoiceParticipant[], unknown>>;
      channelId: ZodType<Maybe<string>, unknown, $ZodTypeInternals<Maybe<string>, unknown>>;
      maxParticipants: ZodType<Maybe<number>, unknown, $ZodTypeInternals<Maybe<number>, unknown>>;
    }>, $strip>;
  }, $strip>;
}, $strip>;
/** Simple helper function to check if a state object is a Voice document state object */
declare function isVoiceState(state: unknown): state is VoicePHState;
/** Simple helper function to assert that a document state object is a Voice document state object */
declare function assertIsVoiceState(state: unknown): asserts state is VoicePHState;
/** Simple helper function to check if a document is a Voice document */
declare function isVoiceDocument(document: unknown): document is VoiceDocument;
/** Simple helper function to assert that a document is a Voice document */
declare function assertIsVoiceDocument(document: unknown): asserts document is VoiceDocument;
//#endregion
//#region document-models/voice/v1/gen/config/operations.d.ts
interface VoiceConfigOperations {
  setChannelIdOperation: (state: VoiceState, action: SetChannelIdAction, dispatch?: SignalDispatch) => void;
  setMaxParticipantsOperation: (state: VoiceState, action: SetMaxParticipantsAction, dispatch?: SignalDispatch) => void;
}
//#endregion
//#region document-models/voice/v1/gen/voice/operations.d.ts
interface VoiceVoiceOperations {
  joinVoiceOperation: (state: VoiceState, action: JoinVoiceAction, dispatch?: SignalDispatch) => void;
  leaveVoiceOperation: (state: VoiceState, action: LeaveVoiceAction, dispatch?: SignalDispatch) => void;
  muteOperation: (state: VoiceState, action: MuteAction, dispatch?: SignalDispatch) => void;
  unmuteOperation: (state: VoiceState, action: UnmuteAction, dispatch?: SignalDispatch) => void;
  deafenOperation: (state: VoiceState, action: DeafenAction, dispatch?: SignalDispatch) => void;
  undeafenOperation: (state: VoiceState, action: UndeafenAction, dispatch?: SignalDispatch) => void;
}
//#endregion
//#region document-models/voice/v1/hooks.d.ts
/** Hook to get a Voice document by its id */
declare function useVoiceDocumentById(documentId: string | null | undefined): [VoiceDocument, DocumentDispatch<VoiceAction>] | [undefined, undefined];
/** Hook to get the selected Voice document */
declare function useSelectedVoiceDocument(): [VoiceDocument, DocumentDispatch<VoiceAction>];
/** Hook to get all Voice documents in the selected drive */
declare function useVoiceDocumentsInSelectedDrive(): VoiceDocument[] | undefined;
/** Hook to get all Voice documents in the selected folder */
declare function useVoiceDocumentsInSelectedFolder(): VoiceDocument[] | undefined;
//#endregion
//#region document-models/voice/v1/actions.d.ts
/** Actions for the Voice document model */
declare const actions: {
  joinVoice: (input: JoinVoiceInput) => JoinVoiceAction;
  leaveVoice: (input: LeaveVoiceInput) => LeaveVoiceAction;
  mute: (input: MuteInput) => MuteAction;
  unmute: (input: UnmuteInput) => UnmuteAction;
  deafen: (input: DeafenInput) => DeafenAction;
  undeafen: (input: UndeafenInput) => UndeafenAction;
  setChannelId: (input: SetChannelIdInput) => SetChannelIdAction;
  setMaxParticipants: (input: SetMaxParticipantsInput) => SetMaxParticipantsAction;
  setName: (name: string | {
    name: string;
  }) => SetNameAction;
  undo: (count?: number, scope?: string) => UndoAction;
  redo: (count?: number, scope?: string) => RedoAction;
  prune: (start?: number, end?: number, scope?: string) => SchemaPruneAction;
  loadState: <TState extends PHBaseState = PHBaseState>(state: TState & {
    name: string;
  }, operations: number) => LoadStateAction;
  noop: (scope?: string) => NOOPAction;
};
//#endregion
//#region document-models/voice/v1/utils.d.ts
/** Utils for the Voice document model */
declare const utils: DocumentModelUtils<VoicePHState>;
//#endregion
//#region document-models/voice/upgrades/versions.d.ts
declare const supportedVersions: readonly [1];
declare const latestVersion: 1;
//#endregion
//#region document-models/voice/upgrades/upgrade-manifest.d.ts
declare const voiceUpgradeManifest: UpgradeManifest<typeof supportedVersions>;
//#endregion
export { DeafenAction, DeafenInput, DeafenInputSchema, Exact, Incremental, InputMaybe, JoinVoiceAction, JoinVoiceInput, JoinVoiceInputSchema, LeaveVoiceAction, LeaveVoiceInput, LeaveVoiceInputSchema, MakeEmpty, MakeMaybe, MakeOptional, Maybe, MuteAction, MuteInput, MuteInputSchema, Scalars, SetChannelIdAction, SetChannelIdInput, SetChannelIdInputSchema, SetMaxParticipantsAction, SetMaxParticipantsInput, SetMaxParticipantsInputSchema, UndeafenAction, UndeafenInput, UndeafenInputSchema, UnmuteAction, UnmuteInput, UnmuteInputSchema, VoiceAction, VoiceConfigAction, VoiceConfigOperations, VoiceController, VoiceDocument, VoiceDocumentHeaderSchema, VoiceDocumentSchema, VoiceState as VoiceGlobalState, VoiceState, VoiceLocalState, VoicePHState, VoicePHStateSchema, VoiceParticipant, VoiceParticipantSchema, VoiceStateSchema, VoiceVoiceAction, VoiceVoiceOperations, actions, assertIsVoiceDocument, assertIsVoiceState, createState, createVoiceDocument, deafen, defaultGlobalState, defaultLocalState, defaultPHState, definedNonNullAnySchema, documentModel, initialGlobalState, initialLocalState, isDefinedNonNullAny, isVoiceDocument, isVoiceState, joinVoice, latestVersion, leaveVoice, mute, reducer, setChannelId, setMaxParticipants, supportedVersions, undeafen, unmute, useSelectedVoiceDocument, useVoiceDocumentById, useVoiceDocumentsInSelectedDrive, useVoiceDocumentsInSelectedFolder, utils, creators_d_exports as voiceConfigActions, voiceDocumentType, voiceUpgradeManifest, creators_d_exports$1 as voiceVoiceActions };
//# sourceMappingURL=index.d.ts.map