import { Action, AssertIsDocumentOfType, AssertIsStateOfType, CreateState, DocumentAction, DocumentModelAction, DocumentModelDocument, DocumentModelDocumentModelModule, DocumentModelModule, DocumentModelPHState, DocumentOperations, IsDocumentOfType, IsStateOfType, Operation, PHBaseState, PHDocument, PHDocumentHeader } from "@powerhousedao/shared/document-model"; export * from "@powerhousedao/shared/document-model"; //#region src/controller.d.ts type ScreamingSnakeToCamel = S extends `${infer Head}_${infer Tail}` ? `${Lowercase}${Capitalize>}` : Lowercase; type DocumentChangeEvent = { document: PHDocument; }; type DocumentChangeListener = (event: DocumentChangeEvent) => void; type ActionMap = { [K in (TAction | DocumentAction)["type"] as ScreamingSnakeToCamel]: (input: Extract["input"]) => TReturn & ActionMap }; declare class PHDocumentController implements PHDocument { readonly module: DocumentModelModule; protected _document: PHDocument; private listeners; constructor(module: DocumentModelModule, initialDocument?: PHDocument); get document(): PHDocument; get header(): PHDocumentHeader; get state(): TState; get initialState(): TState; get operations(): DocumentOperations; get clipboard(): Operation[]; onChange(listener: DocumentChangeListener): () => void; private notifyListeners; static forDocumentModel(module: DocumentModelModule): new (initialDocument?: PHDocument) => PHDocumentController & ActionMap>; } declare const DocumentModelController: new (initialDocument?: PHDocument | undefined) => PHDocumentController & ActionMap>; //#endregion //#region src/logger-types.d.ts type LoggerErrorHandler = (...data: any[]) => void; type ILogger = { level: "verbose" | "debug" | "info" | "warn" | "error"; verbose: (message: string, ...replacements: any[]) => void; debug: (message: string, ...replacements: any[]) => void; info: (message: string, ...replacements: any[]) => void; warn: (message: string, ...replacements: any[]) => void; error: (message: string, ...replacements: any[]) => void; errorHandler: LoggerErrorHandler; child: (tags: string[]) => ILogger; }; //#endregion //#region src/logger.d.ts declare const LOG_LEVELS: { readonly verbose: 0; readonly debug: 1; readonly info: 2; readonly warn: 3; readonly error: 4; }; declare class ConsoleLogger implements ILogger { #private; errorHandler: LoggerErrorHandler; constructor(tags?: string[], handler?: LoggerErrorHandler); get level(): keyof typeof LOG_LEVELS; set level(value: keyof typeof LOG_LEVELS); child(tags: string[]): ILogger; verbose(message: string, ...replacements: any[]): void; debug(message: string, ...replacements: any[]): void; info(message: string, ...replacements: any[]): void; warn(message: string, ...replacements: any[]): void; error(message: string, ...replacements: any[]): void; } declare const logger: ILogger; declare const setLogLevel: (level: ILogger["level"]) => void; declare const setErrorHandler: (handler: LoggerErrorHandler) => void; declare const childLogger: (tags: string[]) => ILogger; //#endregion //#region src/module.d.ts declare const documentModelDocumentModelModule: DocumentModelDocumentModelModule; //#endregion //#region src/state.d.ts declare const isStateOfType: IsStateOfType; declare const assertIsStateOfType: AssertIsStateOfType; declare const isDocumentOfType: IsDocumentOfType; declare const assertIsDocumentOfType: AssertIsDocumentOfType; declare const documentModelCreateState: CreateState; declare function documentModelCreateDocument(state?: Partial): DocumentModelDocument; //#endregion export { ActionMap, ConsoleLogger, DocumentChangeEvent, DocumentChangeListener, DocumentModelController, ILogger, LoggerErrorHandler, PHDocumentController, assertIsDocumentOfType, assertIsStateOfType, childLogger, documentModelCreateDocument, documentModelCreateState, documentModelDocumentModelModule, isDocumentOfType, isStateOfType, logger, setErrorHandler, setLogLevel }; //# sourceMappingURL=index.d.ts.map