import { AutoBeEvent, AutoBeHistory, AutoBeUserMessageContent } from "@autobe/interface";
import { ILlmSchema } from "@samchon/openapi";
import { AutoBeTokenUsage } from "./context/AutoBeTokenUsage";
import { IAutoBeProps } from "./structures/IAutoBeProps";
export declare class AutoBeAgent<Model extends ILlmSchema.Model> {
    private readonly props;
    private readonly agentica_;
    private readonly histories_;
    private readonly context_;
    private readonly state_;
    private readonly listeners_;
    /**
     * Initializer constructor.
     *
     * @param props Properties to construct the agent
     */
    constructor(props: IAutoBeProps<Model>);
    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;
    conversate(content: string | AutoBeUserMessageContent | AutoBeUserMessageContent[]): Promise<AutoBeHistory[]>;
    getFiles(): Record<string, string>;
    getHistories(): AutoBeHistory[];
    getTokenUsage(): AutoBeTokenUsage;
}
