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 { A as Scalars, C as Exact, D as MakeMaybe, E as MakeEmpty, F as TransactionEntry, I as UpdateBudgetInput, L as UpdateTransactionInput, M as TransactionDetails, N as TransactionDirection, O as MakeOptional, P as TransactionDirectionInput, R as UpdateTransactionPeriodInput, S as DeleteTransactionInput, T as InputMaybe, _ as AccountTransactionsState, a as UpdateBudgetAction, b as Budget, c as DeleteTransactionAction, d as AccountTransactionsAccountAction, f as SetAccountAction, g as Account, h as AccountTransactionsPHState, i as DeleteBudgetAction, j as SetAccountInput, k as Maybe, l as UpdateTransactionAction, m as AccountTransactionsLocalState, n as AccountTransactionsBudgetsAction, o as AccountTransactionsTransactionsAction, p as AccountTransactionsDocument, r as AddBudgetAction, s as AddTransactionAction, t as AccountTransactionsAction, u as UpdateTransactionPeriodAction, v as AddBudgetInput, w as Incremental, x as DeleteBudgetInput, y as AddTransactionInput } from "../../actions-CYBR_1mh.js";
import { t as DocumentDispatch } from "../../index-B72y5VYK.js";

//#region document-models/account-transactions/v1/gen/document-model.d.ts
declare const documentModel: DocumentModelGlobalState;
declare namespace creators_d_exports {
  export { setAccount };
}
declare const setAccount: (input: SetAccountInput) => SetAccountAction;
declare namespace creators_d_exports$2 {
  export { addTransaction, deleteTransaction, updateTransaction, updateTransactionPeriod };
}
declare const addTransaction: (input: AddTransactionInput) => AddTransactionAction;
declare const updateTransaction: (input: UpdateTransactionInput) => UpdateTransactionAction;
declare const deleteTransaction: (input: DeleteTransactionInput) => DeleteTransactionAction;
declare const updateTransactionPeriod: (input: UpdateTransactionPeriodInput) => UpdateTransactionPeriodAction;
declare namespace creators_d_exports$1 {
  export { addBudget, deleteBudget, updateBudget };
}
declare const addBudget: (input: AddBudgetInput) => AddBudgetAction;
declare const updateBudget: (input: UpdateBudgetInput) => UpdateBudgetAction;
declare const deleteBudget: (input: DeleteBudgetInput) => DeleteBudgetAction;
//#endregion
//#region document-models/account-transactions/v1/gen/ph-factories.d.ts
declare function defaultGlobalState(): AccountTransactionsState;
declare function defaultLocalState(): AccountTransactionsLocalState;
declare function defaultPHState(): AccountTransactionsPHState;
declare function createState(baseState?: Partial<PHBaseState>, globalState?: Partial<AccountTransactionsState>, localState?: Partial<AccountTransactionsLocalState>): AccountTransactionsPHState;
/**
 * Creates a AccountTransactionsDocument with custom global and local state
 * This properly handles the PHBaseState requirements while allowing
 * document-specific state to be set.
 */
declare function createAccountTransactionsDocument(state?: Partial<{
  auth?: Partial<PHAuthState>;
  document?: Partial<PHDocumentState>;
  global?: Partial<AccountTransactionsState>;
  local?: Partial<AccountTransactionsLocalState>;
}>): AccountTransactionsDocument;
//#endregion
//#region document-models/account-transactions/v1/gen/utils.d.ts
declare const initialGlobalState: AccountTransactionsState;
declare const initialLocalState: AccountTransactionsLocalState;
//#endregion
//#region document-models/account-transactions/v1/gen/reducer.d.ts
declare const reducer: Reducer<AccountTransactionsPHState>;
//#endregion
//#region document-models/account-transactions/v1/gen/controller.d.ts
declare const AccountTransactionsController: new (initialDocument?: PHDocument<AccountTransactionsPHState> | undefined) => PHDocumentController<AccountTransactionsPHState> & ActionMap<AccountTransactionsAction, PHDocumentController<AccountTransactionsPHState>>;
//#endregion
//#region document-models/account-transactions/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 TransactionDirectionSchema: ZodEnum<{
  INFLOW: "INFLOW";
  OUTFLOW: "OUTFLOW";
}>;
declare const TransactionDirectionInputSchema: ZodEnum<{
  INFLOW: "INFLOW";
  OUTFLOW: "OUTFLOW";
}>;
declare function AccountSchema(): ZodObject<Properties<Account>>;
declare function AccountTransactionsStateSchema(): ZodObject<Properties<AccountTransactionsState>>;
declare function AddBudgetInputSchema(): ZodObject<Properties<AddBudgetInput>>;
declare function AddTransactionInputSchema(): ZodObject<Properties<AddTransactionInput>>;
declare function BudgetSchema(): ZodObject<Properties<Budget>>;
declare function DeleteBudgetInputSchema(): ZodObject<Properties<DeleteBudgetInput>>;
declare function DeleteTransactionInputSchema(): ZodObject<Properties<DeleteTransactionInput>>;
declare function SetAccountInputSchema(): ZodObject<Properties<SetAccountInput>>;
declare function TransactionDetailsSchema(): ZodObject<Properties<TransactionDetails>>;
declare function TransactionEntrySchema(): ZodObject<Properties<TransactionEntry>>;
declare function UpdateBudgetInputSchema(): ZodObject<Properties<UpdateBudgetInput>>;
declare function UpdateTransactionInputSchema(): ZodObject<Properties<UpdateTransactionInput>>;
declare function UpdateTransactionPeriodInputSchema(): ZodObject<Properties<UpdateTransactionPeriodInput>>;
//#endregion
//#region document-models/account-transactions/v1/gen/document-type.d.ts
declare const accountTransactionsDocumentType = "powerhouse/account-transactions";
//#endregion
//#region document-models/account-transactions/v1/gen/document-schema.d.ts
/** Schema for validating the header object of a AccountTransactions document */
declare const AccountTransactionsDocumentHeaderSchema: ZodObject<{
  id: ZodString;
  name: ZodString;
  createdAtUtcIso: ZodString;
  lastModifiedAtUtcIso: ZodString;
  documentType: ZodLiteral<"powerhouse/account-transactions">;
}, $strip>;
/** Schema for validating the state object of a AccountTransactions document */
declare const AccountTransactionsPHStateSchema: ZodObject<{
  global: ZodObject<Required<{
    account: ZodType<Account, unknown, $ZodTypeInternals<Account, unknown>>;
    budgets: ZodType<Budget[], unknown, $ZodTypeInternals<Budget[], unknown>>;
    transactions: ZodType<TransactionEntry[], unknown, $ZodTypeInternals<TransactionEntry[], unknown>>;
  }>, $strip>;
}, $strip>;
declare const AccountTransactionsDocumentSchema: ZodObject<{
  header: ZodObject<{
    id: ZodString;
    name: ZodString;
    createdAtUtcIso: ZodString;
    lastModifiedAtUtcIso: ZodString;
    documentType: ZodLiteral<"powerhouse/account-transactions">;
  }, $strip>;
  state: ZodObject<{
    global: ZodObject<Required<{
      account: ZodType<Account, unknown, $ZodTypeInternals<Account, unknown>>;
      budgets: ZodType<Budget[], unknown, $ZodTypeInternals<Budget[], unknown>>;
      transactions: ZodType<TransactionEntry[], unknown, $ZodTypeInternals<TransactionEntry[], unknown>>;
    }>, $strip>;
  }, $strip>;
  initialState: ZodObject<{
    global: ZodObject<Required<{
      account: ZodType<Account, unknown, $ZodTypeInternals<Account, unknown>>;
      budgets: ZodType<Budget[], unknown, $ZodTypeInternals<Budget[], unknown>>;
      transactions: ZodType<TransactionEntry[], unknown, $ZodTypeInternals<TransactionEntry[], unknown>>;
    }>, $strip>;
  }, $strip>;
}, $strip>;
/** Simple helper function to check if a state object is a AccountTransactions document state object */
declare function isAccountTransactionsState(state: unknown): state is AccountTransactionsPHState;
/** Simple helper function to assert that a document state object is a AccountTransactions document state object */
declare function assertIsAccountTransactionsState(state: unknown): asserts state is AccountTransactionsPHState;
/** Simple helper function to check if a document is a AccountTransactions document */
declare function isAccountTransactionsDocument(document: unknown): document is AccountTransactionsDocument;
/** Simple helper function to assert that a document is a AccountTransactions document */
declare function assertIsAccountTransactionsDocument(document: unknown): asserts document is AccountTransactionsDocument;
//#endregion
//#region document-models/account-transactions/v1/gen/account/operations.d.ts
interface AccountTransactionsAccountOperations {
  setAccountOperation: (state: AccountTransactionsState, action: SetAccountAction, dispatch?: SignalDispatch) => void;
}
//#endregion
//#region document-models/account-transactions/v1/gen/transactions/operations.d.ts
interface AccountTransactionsTransactionsOperations {
  addTransactionOperation: (state: AccountTransactionsState, action: AddTransactionAction, dispatch?: SignalDispatch) => void;
  updateTransactionOperation: (state: AccountTransactionsState, action: UpdateTransactionAction, dispatch?: SignalDispatch) => void;
  deleteTransactionOperation: (state: AccountTransactionsState, action: DeleteTransactionAction, dispatch?: SignalDispatch) => void;
  updateTransactionPeriodOperation: (state: AccountTransactionsState, action: UpdateTransactionPeriodAction, dispatch?: SignalDispatch) => void;
}
//#endregion
//#region document-models/account-transactions/v1/gen/budgets/operations.d.ts
interface AccountTransactionsBudgetsOperations {
  addBudgetOperation: (state: AccountTransactionsState, action: AddBudgetAction, dispatch?: SignalDispatch) => void;
  updateBudgetOperation: (state: AccountTransactionsState, action: UpdateBudgetAction, dispatch?: SignalDispatch) => void;
  deleteBudgetOperation: (state: AccountTransactionsState, action: DeleteBudgetAction, dispatch?: SignalDispatch) => void;
}
//#endregion
//#region document-models/account-transactions/v1/hooks.d.ts
/** Hook to get a AccountTransactions document by its id */
declare function useAccountTransactionsDocumentById(documentId: string | null | undefined): [AccountTransactionsDocument, DocumentDispatch<AccountTransactionsAction>] | [undefined, undefined];
/** Hook to get the selected AccountTransactions document */
declare function useSelectedAccountTransactionsDocument(): [AccountTransactionsDocument, DocumentDispatch<AccountTransactionsAction>];
/** Hook to get all AccountTransactions documents in the selected drive */
declare function useAccountTransactionsDocumentsInSelectedDrive(): AccountTransactionsDocument[] | undefined;
/** Hook to get all AccountTransactions documents in the selected folder */
declare function useAccountTransactionsDocumentsInSelectedFolder(): AccountTransactionsDocument[] | undefined;
//#endregion
//#region document-models/account-transactions/v1/actions.d.ts
/** Actions for the AccountTransactions document model */
declare const actions: {
  addBudget: (input: AddBudgetInput) => AddBudgetAction;
  updateBudget: (input: UpdateBudgetInput) => UpdateBudgetAction;
  deleteBudget: (input: DeleteBudgetInput) => DeleteBudgetAction;
  addTransaction: (input: AddTransactionInput) => AddTransactionAction;
  updateTransaction: (input: UpdateTransactionInput) => UpdateTransactionAction;
  deleteTransaction: (input: DeleteTransactionInput) => DeleteTransactionAction;
  updateTransactionPeriod: (input: UpdateTransactionPeriodInput) => UpdateTransactionPeriodAction;
  setAccount: (input: SetAccountInput) => SetAccountAction;
  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/account-transactions/v1/utils.d.ts
/** Utils for the AccountTransactions document model */
declare const utils: DocumentModelUtils<AccountTransactionsPHState>;
//#endregion
//#region document-models/account-transactions/upgrades/versions.d.ts
declare const supportedVersions: readonly [1];
declare const latestVersion: 1;
//#endregion
//#region document-models/account-transactions/upgrades/upgrade-manifest.d.ts
declare const accountTransactionsUpgradeManifest: UpgradeManifest<typeof supportedVersions>;
//#endregion
export { Account, AccountSchema, AccountTransactionsAccountAction, AccountTransactionsAccountOperations, AccountTransactionsAction, AccountTransactionsBudgetsAction, AccountTransactionsBudgetsOperations, AccountTransactionsController, AccountTransactionsDocument, AccountTransactionsDocumentHeaderSchema, AccountTransactionsDocumentSchema, AccountTransactionsState as AccountTransactionsGlobalState, AccountTransactionsState, AccountTransactionsLocalState, AccountTransactionsPHState, AccountTransactionsPHStateSchema, AccountTransactionsStateSchema, AccountTransactionsTransactionsAction, AccountTransactionsTransactionsOperations, AddBudgetAction, AddBudgetInput, AddBudgetInputSchema, AddTransactionAction, AddTransactionInput, AddTransactionInputSchema, Budget, BudgetSchema, DeleteBudgetAction, DeleteBudgetInput, DeleteBudgetInputSchema, DeleteTransactionAction, DeleteTransactionInput, DeleteTransactionInputSchema, Exact, Incremental, InputMaybe, MakeEmpty, MakeMaybe, MakeOptional, Maybe, Scalars, SetAccountAction, SetAccountInput, SetAccountInputSchema, TransactionDetails, TransactionDetailsSchema, TransactionDirection, TransactionDirectionInput, TransactionDirectionInputSchema, TransactionDirectionSchema, TransactionEntry, TransactionEntrySchema, UpdateBudgetAction, UpdateBudgetInput, UpdateBudgetInputSchema, UpdateTransactionAction, UpdateTransactionInput, UpdateTransactionInputSchema, UpdateTransactionPeriodAction, UpdateTransactionPeriodInput, UpdateTransactionPeriodInputSchema, creators_d_exports as accountTransactionsAccountActions, creators_d_exports$1 as accountTransactionsBudgetsActions, accountTransactionsDocumentType, creators_d_exports$2 as accountTransactionsTransactionsActions, accountTransactionsUpgradeManifest, actions, addBudget, addTransaction, assertIsAccountTransactionsDocument, assertIsAccountTransactionsState, createAccountTransactionsDocument, createState, defaultGlobalState, defaultLocalState, defaultPHState, definedNonNullAnySchema, deleteBudget, deleteTransaction, documentModel, initialGlobalState, initialLocalState, isAccountTransactionsDocument, isAccountTransactionsState, isDefinedNonNullAny, latestVersion, reducer, setAccount, supportedVersions, updateBudget, updateTransaction, updateTransactionPeriod, useAccountTransactionsDocumentById, useAccountTransactionsDocumentsInSelectedDrive, useAccountTransactionsDocumentsInSelectedFolder, useSelectedAccountTransactionsDocument, utils };
//# sourceMappingURL=index.d.ts.map