import { Keys, Extends, PropSelector, Digit } from "@onebro/oba-common"; import { Model, ModelSignature, ModelBaseTypeSig, Stages, IsObjectId } from "@onebro/oba-mongoose"; import { UserStatuses } from "./00-common"; import { UserAcctAsProp } from "./01-user-acct"; import { FinancialDocItemAsProp } from "./06-fin-doc-item"; export declare type FinancialDocVirtuals = { published: Date; }; export declare type FinancialDocProps = FinancialDocVirtuals & { _type_: "financial-document"; name: string; type: FinancialDocType; yr: `${"20"}${Digit}${Digit}`; items: FinancialDocItemAsProp[t]; owner: UserAcctAsProp[t]; }; export declare type FinancialDocConfigKeys = "owner" | "name" | "type" | "yr"; export declare type FinancialDocConfigOptKeys = "items"; export declare type FinancialDocInstanceKeys = FinancialDocConfigKeys | FinancialDocConfigOptKeys | "published"; export declare type FinancialDocJsonKeys = FinancialDocInstanceKeys | "_type_"; export declare type FinancialDocPreviewKeys = Extract; export declare type FinancialDocSelfRefs = {}; export declare type FinancialDocMethods = { jsonAuth: (auth?: boolean) => FinancialDoc["json"]; }; export declare type FinancialDocPropKeys = Keys>; export declare type FinancialDocPropSelector = undefined, j extends FinancialDocPropKeys = undefined> = PropSelector, k, j>; export declare type FinancialDocSignature = ModelSignature, FinancialDocPropSelector<"I", FinancialDocInstanceKeys> & FinancialDocMethods, FinancialDocPropSelector<"J", FinancialDocJsonKeys>, FinancialDocPropSelector<"J", FinancialDocPreviewKeys>, UserStatuses, FinancialDocSelfRefs>; export declare type FinancialDoc = Model; export declare type FinancialDocAsProp = ModelBaseTypeSig, Extends<[IsArr], [true | 1], FinancialDoc["instance"][], FinancialDoc["instance"]>, Extends<[IsArr], [true | 1], Extends<[IsUser], [true | 1], FinancialDoc["json"][], FinancialDoc["preview"][]>, Extends<[IsUser], [true | 1], FinancialDoc["json"], FinancialDoc["preview"]>>>; export declare type FinancialDocType = "banking" | "budget" | "bal-sheet" | "income-stmt" | "cash-flow" | "ledger" | "invoice" | "receipt";