import { FileService } from "./file-service.js"; import { TimeMode, SystemService, VoidFunc, BasicSysAbstraction, type BasicRuntimeService } from "./sys-abstraction.js"; import { Time } from "./time.js"; import { TxtEnDecoder } from "./txt-en-decoder.js"; import { Env } from "./sys-env.js"; import { IDMode, IdService, RandomMode, RandomService, WithCement } from "@adviser/cement"; export declare class SysTime extends Time { Now(): Date; Sleep(duration: number): Promise; } export declare class ConstTime extends Time { Now(): Date; Sleep(duration: number): Promise; } export declare class StepTime extends Time { _step: Date; readonly _start: Date; constructor(); Now(steps?: number): Date; Sleep(duration: number): Promise; } export declare function TimeFactory(timeMode: TimeMode): Time; export interface BaseBasicSysAbstractionParams { readonly TxtEnDecoder: TxtEnDecoder; } export interface BaseSysAbstractionParams extends BaseBasicSysAbstractionParams { readonly FileSystem: FileService; readonly SystemService: SystemService; } export interface ExitHandler { readonly hdl: VoidFunc; readonly id: string; } export interface ExitService { injectExitHandlers(hdls: ExitHandler[]): void; exit(code: number): void; } export declare class BaseBasicSysAbstraction { readonly _time: SysTime; readonly _idService: IdService; readonly _randomService: RandomService; readonly _txtEnDe: TxtEnDecoder; constructor(params: BaseBasicSysAbstractionParams); } export declare class BaseSysAbstraction extends BaseBasicSysAbstraction { readonly _fileSystem: FileService; readonly _systemService: SystemService; constructor(params: BaseSysAbstractionParams); } export interface BasicSysAbstractionParams { readonly TimeMode: TimeMode; readonly IdMode: IDMode; readonly RandomMode: RandomMode; readonly TxtEnDecoder: TxtEnDecoder; } export type WrapperBasicSysAbstractionParams = Partial; export type BaseBasicRuntimeSysAbstractionParams = (BasicRuntimeService & BasicSysAbstractionParams) | (BasicRuntimeService & BaseSysAbstractionParams); export type WithCementWrapperSysAbstractionParams = WithCement>; export declare function BasicSysAbstractionFactory(params?: WrapperBasicSysAbstractionParams): BasicSysAbstraction; export declare class WrapperBasicSysAbstraction implements BasicSysAbstraction { readonly _time: Time; readonly _idService: IdService; readonly _randomService: RandomService; readonly _basicRuntimeService: BasicRuntimeService; constructor(base: BaseBasicSysAbstraction, params: Partial & { basicRuntimeService: BasicRuntimeService; }); Time(): Time; NextId(): string; Random0ToValue(value: number): number; Stdout(): WritableStream; Stderr(): WritableStream; Env(): Env; Args(): string[]; } export declare class WrapperRuntimeSysAbstraction extends WrapperBasicSysAbstraction { readonly _systemService: SystemService; readonly _fileSystem: FileService; constructor(base: BaseSysAbstraction, params: Partial & { systemService?: SystemService; fileSystem?: FileService; basicRuntimeService: BasicRuntimeService; }); System(): SystemService; FileSystem(): FileService; } //# sourceMappingURL=base-sys-abstraction.d.ts.map