import { CustomElement } from '../../../../Abstracts/CustomElement';
import type { ChatElement } from '../../ChatElement';
import type { IChatTool } from '../Interfaces/IChatTool';
import { DockSide } from '../../../../../Types/DockSide';
declare const ChatToolBaseElement_base: import("../../../../../../Index").ControlBehaviorReturn<typeof CustomElement, import("../../../../../Behaviors/Disableable").IDisableableProps>;
/**
 * Chat Tool Base - Represents the base class for all Chat Tools.
 *
 * @public
 * @abstract
 */
export declare abstract class ChatToolBaseElement extends ChatToolBaseElement_base implements IChatTool {
    private _isAttached;
    private _chatElement?;
    private _dock;
    /**
     * @public
     */
    constructor();
    /**
     * Gets or sets the `dock` property.
     *
     * @public
     * @attr
     */
    get dock(): Extract<DockSide, 'left' | 'right'>;
    set dock(value: Extract<DockSide, 'left' | 'right'>);
    /**
     * Gets the chat element associated with this tool.
     *
     * @protected
     * @readonly
     */
    protected get chatElement(): ChatElement | undefined;
    /**
     * Executes the chat tool with the given arguments.
     *
     * @public
     * @abstract
     * @param args The arguments to execute the tool with.
     * @returns True if the execution was successful, false otherwise.
     */
    abstract execute(args: unknown): boolean;
    /**
     * Attaches the tool to the specified chat element.
     *
     * @public
     * @param chat The chat element to attach to.
     */
    attach(chat: ChatElement): void;
}
export {};
//# sourceMappingURL=ChatToolBaseElement.d.ts.map