import type { DocumentFormPreview, DocumentFormSource } from '../types'; export type PartyRole = 'customer' | 'supplier' | 'none'; export type LinesMode = 'sale' | 'purchase' | 'credit' | 'allocation' | 'workorder' | 'none'; export interface DocumentKind { key: string; label: string; model: string; party: PartyRole; partyModel?: string; lines: LinesMode; /** Campo de renglones del modelo (one_to_many) o del payload de la acción. */ linesField?: string; sources?: DocumentFormSource[]; preview?: DocumentFormPreview; /** Estados del documento (StageMachine): los muestra StageStepper. */ stages?: string[]; /** Addon dueño del tipo (si no está, el tipo no se ofrece). */ addon: string; } export declare function registerDocumentKind(k: DocumentKind): () => void; export declare function getDocumentKind(key: string): DocumentKind | undefined; export declare function listDocumentKinds(isInstalled: (addon: string) => boolean): DocumentKind[]; /** Tipos base que el core ya tiene (modelos verificados en addons main 9cd69bde). */ export declare const CORE_DOCUMENT_KINDS: DocumentKind[]; //# sourceMappingURL=document-kinds.d.ts.map