import { ReadonlySubject } from "@iyio/common";
import { Conversation } from "../Conversation.js";
import { ConvoMessage } from "../convo-types.js";
import { ConvoWorkerCtx } from "./ConvoWorkerCtx.js";
export interface ConvoWorkerOptions {
    ctx: ConvoWorkerCtx;
    path: string;
}
export declare class ConvoWorker {
    readonly ctx: ConvoWorkerCtx;
    readonly name: string;
    /**
     * Path to the agents convo file
     */
    readonly path: string;
    readonly dir: string;
    readonly memoryPath: string;
    private readonly _error;
    get errorSubject(): ReadonlySubject<string | null>;
    get error(): string | null;
    constructor({ ctx, path, }: ConvoWorkerOptions);
    private _isDisposed;
    get isDisposed(): boolean;
    dispose(): void;
    log(...args: any[]): void;
    logError(...args: any[]): void;
    runAsync(): Promise<void>;
    private runPromise?;
    private _runAsync;
    private readonly _loaded;
    get loadedSubject(): ReadonlySubject<boolean>;
    get loaded(): boolean;
    private readonly _source;
    get sourceSubject(): ReadonlySubject<string | null>;
    get source(): string | null;
    private loadAsync;
    private readonly _parsed;
    get parsedSubject(): ReadonlySubject<boolean>;
    get parsed(): boolean;
    private readonly _messages;
    get messagesSubject(): ReadonlySubject<ConvoMessage[] | null>;
    get messages(): ConvoMessage[] | null;
    private readonly _inputs;
    get inputsSubject(): ReadonlySubject<string[] | null>;
    get inputs(): string[] | null;
    private readonly _outputs;
    get outputsSubject(): ReadonlySubject<string[] | null>;
    get outputs(): string[] | null;
    private readonly _autoManageMemory;
    get autoManageMemorySubject(): ReadonlySubject<boolean | null>;
    get autoManageMemory(): boolean | null;
    private readonly _runReady;
    get runReadySubject(): ReadonlySubject<boolean | null>;
    get runReady(): boolean | null;
    private parse;
    private readonly _ioChecked;
    get ioCheckedSubject(): ReadonlySubject<boolean>;
    get ioChecked(): boolean;
    private readonly _existingInputs;
    get existingInputsSubject(): ReadonlySubject<string[] | null>;
    get existingInputs(): string[] | null;
    private readonly _existingOutputs;
    get existingOutputsSubject(): ReadonlySubject<string[] | null>;
    get existingOutputs(): string[] | null;
    private readonly _ioReady;
    get ioReadySubject(): ReadonlySubject<boolean>;
    get ioReady(): boolean;
    private checkIoAsync;
    private readonly _memoryLoaded;
    get memoryLoadedSubject(): ReadonlySubject<boolean>;
    get memoryLoaded(): boolean;
    private readonly _memory;
    get memorySubject(): ReadonlySubject<string | null>;
    get memory(): string | null;
    loadMemoryAsync(): Promise<boolean>;
    private readonly _threadCompleted;
    get threadCompletedSubject(): ReadonlySubject<boolean>;
    get threadCompleted(): boolean;
    private readonly _threadName;
    get threadNameSubject(): ReadonlySubject<string | null>;
    get threadName(): string | null;
    private readonly _threadPath;
    get threadPathSubject(): ReadonlySubject<string | null>;
    get threadPath(): string | null;
    private readonly _thread;
    get threadSubject(): ReadonlySubject<Conversation | null>;
    get thread(): Conversation | null;
    private runThreadAsync;
}
