import { PropertyValueMap } from 'lit';
import { InfiniteQueryController } from '../controllers/infinite-query-controller';
import { PostQueryFilterType, PostsResultType } from '../types/posts.types';
import { ShadowPartsController } from '../controllers/shadow-parts-controller';
import { WeavySubAppComponent } from '../classes/weavy-sub-app-component';
import { UnreadPostsController } from '../controllers/unread-posts-controller';
import { RealtimeController } from '../controllers/realtime-controller';
declare global {
    interface HTMLElementTagNameMap {
        "wy-post-list": WyPostList;
    }
}
/**
 * List container rendering a paginated list of posts.
 *
 * **Used sub components:**
 *
 * - [`<wy-post>`](./wy-post.ts)
 * - [`<wy-empty>`](./wy-empty.ts)
 * - [`<wy-progress-circular>`](./ui/wy-progress-circular.ts)
 *
 * @csspart wy-post - Wrapper for each post/editor block.
 * @csspart wy-pager - Pager container.
 * @csspart wy-pager-bottom - Pager modifier for bottom placement.
 *
 * @fires {WyActionEventType} wy-action - Emitted when an embed action button is triggered.
 * @fires {WyPreviewOpenEventType} wy-preview-open - Fired when a preview overlay is about to open.
 * @fires {WyPreviewCloseEventType} wy-preview-close - Fired when a preview overlay is closed.
 */
export declare class WyPostList extends WeavySubAppComponent {
    static styles: import('lit').CSSResult[];
    /** @internal */
    protected exportParts: ShadowPartsController;
    /**
     * Infinite query controller providing paginated posts.
     *
     * @internal
     */
    protected postsQuery: InfiniteQueryController<PostsResultType>;
    /**
     * Realtime controller.
     *
     * @internal
     */
    protected postsRealtime: RealtimeController;
    /**
     * Intersection observer used for infinite scrolling.
     *
     * @internal
     */
    private infiniteScroll;
    /**
     * Pager sentinel reference for lazy loading.
     *
     * @internal
     */
    private pagerRef;
    /**
     * Mutation used to toggle post subscription state.
     *
     * @internal
     */
    private subscribePostMutation?;
    /**
     * Mutation used to trash posts.
     *
     * @internal
     */
    private removePostMutation?;
    /**
     * Mutation used to restore trashed posts.
     *
     * @internal
     */
    private restorePostMutation?;
    /**
     * Mutation used for poll vote submissions on posts.
     *
     * @internal
     */
    private pollMutation?;
    /** @internal */
    protected unreadPostsController: UnreadPostsController;
    /** Current unread conversation count. */
    get unread(): number;
    /**
     * Id of the last post
     * @internal
     */
    lastPostId?: number;
    /**
     * Whether the post list a feed of posts.
     */
    feed: boolean;
    /**
     * Which posts to show.
     */
    filter: PostQueryFilterType;
    willUpdate(changedProperties: PropertyValueMap<this>): Promise<void>;
    render(): import('../../node_modules/lit-html/node/lit-html.js').TemplateResult<1>;
    protected updated(changedProperties: PropertyValueMap<this>): void;
}
//# sourceMappingURL=wy-post-list.d.ts.map