import { A as SetNameAction, D as Reducer, E as RedoAction, M as UndoAction, N as UpgradeManifest, S as PHDocument, _ as NOOPAction, b as PHAuthState, j as SignalDispatch, k as SchemaPruneAction, l as DocumentModelUtils, m as LoadStateAction, o as DocumentModelGlobalState, r as PHDocumentController, t as ActionMap, w as PHDocumentState, x as PHBaseState } from "../../index-BWXRiGBX.js";
import { a as ZodString, c as $strip, i as ZodObject, n as ZodEnum, o as ZodType, r as ZodLiteral, s as $ZodTypeInternals, t as ZodAny } from "../../schemas-CBgWAPtq.js";
import { t as DocumentDispatch } from "../../index-B72y5VYK.js";
import { C as MakeOptional, D as UpdateKycStatusInput, E as UpdateAccountInput, S as MakeMaybe, T as Scalars, _ as Incremental, a as UpdateAccountAction, b as KycAmlStatusTypeInput, c as AccountsLocalState, d as AccountType, f as AccountTypeInput, g as Exact, h as DeleteAccountInput, i as DeleteAccountAction, l as AccountsPHState, m as AddAccountInput, n as AccountsAccountsAction, o as UpdateKycStatusAction, p as AccountsState, r as AddAccountAction, s as AccountsDocument, t as AccountsAction, u as AccountEntry, v as InputMaybe, w as Maybe, x as MakeEmpty, y as KycAmlStatusType } from "../../actions-BOl4GPHp.js";

//#region document-models/accounts/v1/gen/document-model.d.ts
declare const documentModel: DocumentModelGlobalState;
declare namespace creators_d_exports {
  export { addAccount, deleteAccount, updateAccount, updateKycStatus };
}
declare const addAccount: (input: AddAccountInput) => AddAccountAction;
declare const updateAccount: (input: UpdateAccountInput) => UpdateAccountAction;
declare const deleteAccount: (input: DeleteAccountInput) => DeleteAccountAction;
declare const updateKycStatus: (input: UpdateKycStatusInput) => UpdateKycStatusAction;
//#endregion
//#region document-models/accounts/v1/gen/ph-factories.d.ts
declare function defaultGlobalState(): AccountsState;
declare function defaultLocalState(): AccountsLocalState;
declare function defaultPHState(): AccountsPHState;
declare function createState(baseState?: Partial<PHBaseState>, globalState?: Partial<AccountsState>, localState?: Partial<AccountsLocalState>): AccountsPHState;
/**
 * Creates a AccountsDocument with custom global and local state
 * This properly handles the PHBaseState requirements while allowing
 * document-specific state to be set.
 */
declare function createAccountsDocument(state?: Partial<{
  auth?: Partial<PHAuthState>;
  document?: Partial<PHDocumentState>;
  global?: Partial<AccountsState>;
  local?: Partial<AccountsLocalState>;
}>): AccountsDocument;
//#endregion
//#region document-models/accounts/v1/gen/utils.d.ts
declare const initialGlobalState: AccountsState;
declare const initialLocalState: AccountsLocalState;
//#endregion
//#region document-models/accounts/v1/gen/reducer.d.ts
declare const reducer: Reducer<AccountsPHState>;
//#endregion
//#region document-models/accounts/v1/gen/controller.d.ts
declare const AccountsController: new (initialDocument?: PHDocument<AccountsPHState> | undefined) => PHDocumentController<AccountsPHState> & ActionMap<AccountsAccountsAction, PHDocumentController<AccountsPHState>>;
//#endregion
//#region document-models/accounts/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 const AccountTypeSchema: ZodEnum<{
  External: "External";
  Internal: "Internal";
  Destination: "Destination";
  Source: "Source";
}>;
declare const AccountTypeInputSchema: ZodEnum<{
  External: "External";
  Internal: "Internal";
  Destination: "Destination";
  Source: "Source";
}>;
declare const KycAmlStatusTypeSchema: ZodEnum<{
  FAILED: "FAILED";
  PASSED: "PASSED";
  PENDING: "PENDING";
}>;
declare const KycAmlStatusTypeInputSchema: ZodEnum<{
  FAILED: "FAILED";
  PASSED: "PASSED";
  PENDING: "PENDING";
}>;
declare function AccountEntrySchema(): ZodObject<Properties<AccountEntry>>;
declare function AccountsStateSchema(): ZodObject<Properties<AccountsState>>;
declare function AddAccountInputSchema(): ZodObject<Properties<AddAccountInput>>;
declare function DeleteAccountInputSchema(): ZodObject<Properties<DeleteAccountInput>>;
declare function UpdateAccountInputSchema(): ZodObject<Properties<UpdateAccountInput>>;
declare function UpdateKycStatusInputSchema(): ZodObject<Properties<UpdateKycStatusInput>>;
//#endregion
//#region document-models/accounts/v1/gen/document-type.d.ts
declare const accountsDocumentType = "powerhouse/accounts";
//#endregion
//#region document-models/accounts/v1/gen/document-schema.d.ts
/** Schema for validating the header object of a Accounts document */
declare const AccountsDocumentHeaderSchema: ZodObject<{
  id: ZodString;
  name: ZodString;
  createdAtUtcIso: ZodString;
  lastModifiedAtUtcIso: ZodString;
  documentType: ZodLiteral<"powerhouse/accounts">;
}, $strip>;
/** Schema for validating the state object of a Accounts document */
declare const AccountsPHStateSchema: ZodObject<{
  global: ZodObject<Required<{
    accounts: ZodType<AccountEntry[], unknown, $ZodTypeInternals<AccountEntry[], unknown>>;
  }>, $strip>;
}, $strip>;
declare const AccountsDocumentSchema: ZodObject<{
  header: ZodObject<{
    id: ZodString;
    name: ZodString;
    createdAtUtcIso: ZodString;
    lastModifiedAtUtcIso: ZodString;
    documentType: ZodLiteral<"powerhouse/accounts">;
  }, $strip>;
  state: ZodObject<{
    global: ZodObject<Required<{
      accounts: ZodType<AccountEntry[], unknown, $ZodTypeInternals<AccountEntry[], unknown>>;
    }>, $strip>;
  }, $strip>;
  initialState: ZodObject<{
    global: ZodObject<Required<{
      accounts: ZodType<AccountEntry[], unknown, $ZodTypeInternals<AccountEntry[], unknown>>;
    }>, $strip>;
  }, $strip>;
}, $strip>;
/** Simple helper function to check if a state object is a Accounts document state object */
declare function isAccountsState(state: unknown): state is AccountsPHState;
/** Simple helper function to assert that a document state object is a Accounts document state object */
declare function assertIsAccountsState(state: unknown): asserts state is AccountsPHState;
/** Simple helper function to check if a document is a Accounts document */
declare function isAccountsDocument(document: unknown): document is AccountsDocument;
/** Simple helper function to assert that a document is a Accounts document */
declare function assertIsAccountsDocument(document: unknown): asserts document is AccountsDocument;
//#endregion
//#region document-models/accounts/v1/gen/accounts/operations.d.ts
interface AccountsAccountsOperations {
  addAccountOperation: (state: AccountsState, action: AddAccountAction, dispatch?: SignalDispatch) => void;
  updateAccountOperation: (state: AccountsState, action: UpdateAccountAction, dispatch?: SignalDispatch) => void;
  deleteAccountOperation: (state: AccountsState, action: DeleteAccountAction, dispatch?: SignalDispatch) => void;
  updateKycStatusOperation: (state: AccountsState, action: UpdateKycStatusAction, dispatch?: SignalDispatch) => void;
}
//#endregion
//#region document-models/accounts/v1/hooks.d.ts
/** Hook to get a Accounts document by its id */
declare function useAccountsDocumentById(documentId: string | null | undefined): [AccountsDocument, DocumentDispatch<AccountsAction>] | [undefined, undefined];
/** Hook to get the selected Accounts document */
declare function useSelectedAccountsDocument(): [AccountsDocument, DocumentDispatch<AccountsAction>];
/** Hook to get all Accounts documents in the selected drive */
declare function useAccountsDocumentsInSelectedDrive(): AccountsDocument[] | undefined;
/** Hook to get all Accounts documents in the selected folder */
declare function useAccountsDocumentsInSelectedFolder(): AccountsDocument[] | undefined;
//#endregion
//#region document-models/accounts/v1/actions.d.ts
/** Actions for the Accounts document model */
declare const actions: {
  addAccount: (input: AddAccountInput) => AddAccountAction;
  updateAccount: (input: UpdateAccountInput) => UpdateAccountAction;
  deleteAccount: (input: DeleteAccountInput) => DeleteAccountAction;
  updateKycStatus: (input: UpdateKycStatusInput) => UpdateKycStatusAction;
  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/accounts/v1/utils.d.ts
/** Utils for the Accounts document model */
declare const utils: DocumentModelUtils<AccountsPHState>;
//#endregion
//#region document-models/accounts/upgrades/versions.d.ts
declare const supportedVersions: readonly [1];
declare const latestVersion: 1;
//#endregion
//#region document-models/accounts/upgrades/upgrade-manifest.d.ts
declare const accountsUpgradeManifest: UpgradeManifest<typeof supportedVersions>;
//#endregion
export { AccountEntry, AccountEntrySchema, AccountType, AccountTypeInput, AccountTypeInputSchema, AccountTypeSchema, AccountsAccountsAction, AccountsAccountsOperations, AccountsAction, AccountsController, AccountsDocument, AccountsDocumentHeaderSchema, AccountsDocumentSchema, AccountsState as AccountsGlobalState, AccountsState, AccountsLocalState, AccountsPHState, AccountsPHStateSchema, AccountsStateSchema, AddAccountAction, AddAccountInput, AddAccountInputSchema, DeleteAccountAction, DeleteAccountInput, DeleteAccountInputSchema, Exact, Incremental, InputMaybe, KycAmlStatusType, KycAmlStatusTypeInput, KycAmlStatusTypeInputSchema, KycAmlStatusTypeSchema, MakeEmpty, MakeMaybe, MakeOptional, Maybe, Scalars, UpdateAccountAction, UpdateAccountInput, UpdateAccountInputSchema, UpdateKycStatusAction, UpdateKycStatusInput, UpdateKycStatusInputSchema, creators_d_exports as accountsAccountsActions, accountsDocumentType, accountsUpgradeManifest, actions, addAccount, assertIsAccountsDocument, assertIsAccountsState, createAccountsDocument, createState, defaultGlobalState, defaultLocalState, defaultPHState, definedNonNullAnySchema, deleteAccount, documentModel, initialGlobalState, initialLocalState, isAccountsDocument, isAccountsState, isDefinedNonNullAny, latestVersion, reducer, supportedVersions, updateAccount, updateKycStatus, useAccountsDocumentById, useAccountsDocumentsInSelectedDrive, useAccountsDocumentsInSelectedFolder, useSelectedAccountsDocument, utils };
//# sourceMappingURL=index.d.ts.map