import { Environment } from "./env"; import { STOPType } from "./consts"; export interface Context { env: Environment; wrapped(): Context; stop(): void; yieldExec(ex: () => Promise): Promise; addRejectFn(fn: (s: STOPType) => void): void; removeRejectFn(fn: (s: STOPType) => void): void; } declare abstract class ContextBase { protected abstract _stopped: [boolean]; protected abstract _rejectPool: [Set<(s: STOPType) => void>]; protected abstract tickInterval: [number]; protected abstract nextYieldTs: [number]; abstract env: Environment; wrapped(): Context; yieldExec(ex: () => Promise): Promise; get stopped(): boolean; stop(): void; get rejectPool(): Set<(s: STOPType) => void>; addRejectFn(fn: (s: STOPType) => void): void; removeRejectFn(fn: (s: STOPType) => void): void; } export declare class RootContext extends ContextBase implements Context { protected _stopped: [boolean]; protected _rejectPool: [Set<(s: STOPType) => void>]; protected nextYieldTs: [number]; protected tickInterval: [number]; env: Environment; constructor(tickInterval: number); } export declare class WrappedContext extends ContextBase implements Context { protected _stopped: [boolean]; protected _rejectPool: [Set<(s: STOPType) => void>]; protected nextYieldTs: [number]; protected tickInterval: [number]; env: Environment; constructor(env: Environment, stopped: [boolean], rejectPool: [Set<(s: STOPType) => void>], nextYieldTs: [number], tickInterval: [number]); } export {};