import { PropertyValueMap } from 'lit';
import { PostType } from '../types/posts.types';
import { WeavySubAppComponent } from '../classes/weavy-sub-app-component';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
declare global {
    interface HTMLElementTagNameMap {
        "wy-post-edit": WyPostEdit;
    }
}
/**
 * Post edit UI for editing an existing post.
 *
 * **Used sub components:**
 *
 * - [`<wy-item>`](./ui/wy-item.ts)
 * - [`<wy-button>`](./ui/wy-button.ts)
 * - [`<wy-icon>`](./ui/wy-icon.ts)
 * - [`<wy-editor-msg>`](./wy-editor-msg.ts)
 * - [`<wy-avatar>`](./ui/wy-avatar.ts)
 *
 * @csspart wy-post - Root post container.
 * @csspart wy-post-header - Header area with avatar and close button.
 *
 * @fires {PostEditEventType} edit - Emitted when editable state should change.
 */
export declare class WyPostEdit extends WeavySubAppComponent {
    static styles: import('lit').CSSResult[];
    /** @internal */
    protected exportParts: ShadowPartsController;
    /**
     * Post data.
     */
    post: PostType;
    /**
     * Mutation controller used to persist post updates.
     *
     * @internal
     */
    private updatePostMutation;
    /**
     * Emit an `edit` event toggling edit mode for the post.
     *
     * @param edit - Desired edit state.
     * @returns {boolean} True if the event was not canceled.
     */
    private dispatchEdit;
    /**
     * Handle editor submit events and trigger the post update mutation.
     *
     * @param e - Editor submit detail containing updated content.
     */
    private handleSubmit;
    willUpdate(changedProperties: PropertyValueMap<this>): Promise<void>;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
}
//# sourceMappingURL=wy-post-edit.d.ts.map