import { AutoBeEvent, AutoBeHistory, IAutoBeCompiler, IAutoBeGetFilesOptions } from "@autobe/interface";
import { AutoBeState } from "./context/AutoBeState";
import { AutoBeTokenUsage } from "./context/AutoBeTokenUsage";
export declare abstract class AutoBeAgentBase {
    private readonly asset;
    constructor(asset: AutoBeAgentBase.IAsset);
    getFiles(options?: Partial<IAutoBeGetFilesOptions>): Promise<Record<string, string>>;
    abstract getHistories(): AutoBeHistory[];
    abstract getTokenUsage(): AutoBeTokenUsage;
    on<Type extends AutoBeEvent.Type>(type: Type, listener: (event: AutoBeEvent.Mapper[Type]) => Promise<void> | void): this;
    off<Type extends AutoBeEvent.Type>(type: Type, listener: (event: AutoBeEvent.Mapper[Type]) => Promise<void> | void): this;
}
export declare namespace AutoBeAgentBase {
    interface IAsset {
        compiler: () => Promise<IAutoBeCompiler>;
        state: () => AutoBeState;
    }
}
