import RTLogger from './logger.js'; import RepoTherapy from './repo-therapy.js'; import type Logger from './logger.js'; type FunctionPropertyNames = { [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never; }[Exclude]; type OnCallback = (data: T extends (...args: any[]) => infer R ? R : never, ...args: Args) => void; export type ClassDefinition = new (option: CustomOptions, ...args: any[]) => any; export declare abstract class RepoTherapyBase = RepoTherapyBase> { private readonly _processes; private readonly _optionsDefinitions; protected get _options(): CustomOptions; constructor(options: CustomOptions); protected _addProcess(fn: () => unknown): void; init(): Promise; before>(event: K, callback: () => void): void; on>(event: K, callback: OnCallback): void; } export declare abstract class RepoTherapyUtilBase = RepoTherapyBase> extends RepoTherapyBase { protected readonly _repoTherapy: RepoTherapy; private _logger; protected get logger(): RTLogger<{}, RTLogger<{}, any>>; protected get errorClass(): new (code: T, input?: { fields?: (string | number | undefined)[]; path?: string[]; message?: string; } & (Error | {}), fn?: Function) => import("./error.js").default; constructor(repoTherapy: RepoTherapy, options: CustomOptions & { prefix?: (string | number)[]; }); resetLogger(): void; before>(event: K, callback: (logger: Logger) => void): void; on>(event: K, callback: OnCallback): void; } export {}; //# sourceMappingURL=base.d.ts.map