import { LitElement, nothing, TemplateResult, PropertyValues } from 'lit';
import { Ref } from 'lit/directives/ref.js';
import { MeetingType } from '../types/meetings.types';
import { MutationController } from '../controllers/mutation-controller';
import { BlobType, ExternalBlobType, FileMutationContextType, FileType, MutateFileProps } from '../types/files.types';
import { MutationStateController } from '../controllers/mutation-state-controller';
import { MutationState } from '@tanstack/query-core';
import { default as WeavyCloudFiles } from './wy-cloud-files';
import { ExternalBlobMutationType } from '../data/blob-external';
import { PollOptionType } from '../types/polls.types';
import { EmbedType } from '../types/embeds.types';
import { DropZoneController } from '../controllers/dropzone-controller';
import { WeavyProps } from '../types/weavy.types';
import { EditorView, KeyBinding } from '@codemirror/view';
import { Extension } from '@codemirror/state';
import { CompletionContext, CompletionResult } from '@codemirror/autocomplete';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
declare const WyEditor_base: import('../types/generic.types').Constructor<import('../mixins/block-mixin').BlockContextProviderProps & import('../mixins/block-mixin').BlockContextProps> & typeof LitElement;
export default class WyEditor extends WyEditor_base {
    static styles: import('lit').CSSResult;
    protected exportParts: ShadowPartsController;
    parentId?: number;
    private _placeholder;
    get placeholder(): string;
    set placeholder(placeholder: string);
    text?: string;
    embed?: EmbedType;
    options?: PollOptionType[];
    attachments: FileType[];
    buttonText: string;
    typing: boolean;
    draft: boolean;
    editorType: "messages" | "posts" | "comments";
    editorClass: string;
    editorLocation: "messages" | "posts" | "apps" | "files";
    protected meeting?: MeetingType;
    protected editorError: boolean;
    protected showPolls: boolean;
    protected pollOptions: PollOptionType[];
    protected embeds: EmbedType[];
    protected draftKey: string;
    protected uploadBlobMutation: MutationController<BlobType, Error, MutateFileProps, FileMutationContextType>;
    protected mutatingFiles: MutationStateController<FileType | BlobType, Error, MutateFileProps, FileMutationContextType>;
    protected externalBlobMutation?: ExternalBlobMutationType;
    protected fileInputRef: Ref<HTMLInputElement>;
    protected cloudFilesRef: Ref<WeavyCloudFiles>;
    protected dropZone: DropZoneController;
    protected keyMap: KeyBinding[];
    protected editorExtensions?: Extension[];
    protected editor?: EditorView;
    protected editorRef: Ref<HTMLElement>;
    private throttledTyping;
    protected authWindow?: WindowProxy | null;
    private throttledDrafting;
    constructor();
    willUpdate(changedProperties: PropertyValues<this & WeavyProps>): void;
    protected updated(changedProperties: PropertyValues<this & WeavyProps>): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
    protected handleRemoveMeeting(): void;
    protected autocomplete(context: CompletionContext): Promise<CompletionResult | null>;
    protected openFileInput: () => void;
    protected openCloudFiles: () => void;
    protected handleDropFiles(e: Event): void;
    protected handleUploadFiles(files: File[] | null, input?: HTMLInputElement): Promise<void>;
    protected handleExternalBlobs(externalBlobs: ExternalBlobType[] | null): void;
    protected handleRemoveUpload(mutation: MutationState<BlobType, Error, MutateFileProps, FileMutationContextType>): void;
    protected saveDraft(): void;
    protected handleRemoveAttachment(attachment: FileType): void;
    protected submit(): Promise<void>;
    protected resetEditor(): void;
    protected clearEditor(): void;
    private createMeeting;
    protected handleMeetingClick(name: string): Promise<void>;
    protected setEmbeds(embed: EmbedType): void;
    protected handleEmbeds(content: string): Promise<void>;
    protected removeEmbed(e: CustomEvent): void;
    protected swapEmbed(): void;
    protected openPolls(): void;
    protected handlePollOptionChange(e: Event, index: number): void;
    protected handlePollOptionAdd(e: Event, index: number): void;
    protected renderTopSlot(): TemplateResult | typeof nothing;
    protected renderMiddleSlot(): TemplateResult | typeof nothing;
    protected renderBottomSlot(): TemplateResult | typeof nothing;
    protected renderLists(): TemplateResult | typeof nothing;
    protected renderCloudFiles(): TemplateResult | typeof nothing;
    protected render(): TemplateResult<1>;
}
export {};
//# sourceMappingURL=wy-editor.d.ts.map