import { Attachment } from "../../types/AttachmentTypes";
import { AppendMessage, Unsubscribe } from "../../types";
import { AttachmentAdapter } from "../attachment";
import { ComposerRuntimeCore } from "../core/ComposerRuntimeCore";
import { MessageRole } from "../../types/AssistantTypes";
export declare abstract class BaseComposerRuntimeCore implements ComposerRuntimeCore {
    readonly isEditing = true;
    protected abstract getAttachmentAdapter(): AttachmentAdapter | undefined;
    getAttachmentAccept(): string;
    private _attachments;
    get attachments(): readonly Attachment[];
    protected setAttachments(value: readonly Attachment[]): void;
    abstract get canCancel(): boolean;
    get isEmpty(): boolean;
    private _text;
    get text(): string;
    private _role;
    get role(): MessageRole;
    setRole(role: MessageRole): void;
    setText(value: string): void;
    reset(): void;
    send(): Promise<void>;
    abstract handleSend(message: Omit<AppendMessage, "parentId">): void;
    abstract cancel(): void;
    addAttachment(file: File): Promise<void>;
    removeAttachment(attachmentId: string): Promise<void>;
    private _subscriptions;
    protected notifySubscribers(): void;
    subscribe(callback: () => void): Unsubscribe;
}
//# sourceMappingURL=BaseComposerRuntimeCore.d.ts.map