import { LitElement, PropertyValues } from 'lit';
import { AppTypes, AppType } from './types/app.types';
import { PostsResultType } from './types/posts.types';
import { InfiniteQueryController } from './controllers/infinite-query-controller';
import { RealtimeCommentEventType, RealtimePostEventType, RealtimeReactionEventType } from './types/realtime.types';
import { WeavyContextProps } from './types/weavy.types';
import { Constructor } from './types/generic.types';

declare const WyPosts_base: Constructor<import('./mixins/app-mixin').AppProps & import('./mixins/app-mixin').AppContextProps & import('./mixins/app-mixin').AppSettingProps & import('./types/features.types').FeatureProps> & typeof LitElement;
export declare class WyPosts extends WyPosts_base {
    static styles: import('lit').CSSResult[];
    appType: AppTypes;
    cssClass?: string;
    /**
     * Event: New post created.
     * @event wy:post_created
     */
    realtimePostCreatedEvent: (realtimeEvent: RealtimePostEventType) => CustomEvent<RealtimePostEventType>;
    /**
     * Event: New comment created on a post.
     * @event wy:comment_created
     */
    realtimeCommentCreatedEvent: (realtimeEvent: RealtimeCommentEventType) => CustomEvent<RealtimeCommentEventType>;
    /**
     * Event: Post reaction added.
     * @event wy:reaction_added
     */
    realtimeReactionAddedEvent: (realtimeEvent: RealtimeReactionEventType) => CustomEvent<RealtimeReactionEventType>;
    /**
     * Event: Post reaction removed.
     * @event wy:reaction_removed
     */
    realtimeReactionRemovedEvent: (realtimeEvent: RealtimeReactionEventType) => CustomEvent<RealtimeReactionEventType>;
    protected postsQuery: InfiniteQueryController<PostsResultType>;
    private infiniteScroll;
    private pagerRef;
    private addPostMutation;
    private subscribePostMutation?;
    private removePostMutation?;
    private restorePostMutation?;
    private pollMutation?;
    constructor();
    private handleSubmit;
    handleRealtimePostCreated: (realtimeEvent: RealtimePostEventType) => void;
    handleRealtimeCommentCreated: (realtimeEvent: RealtimeCommentEventType) => void;
    handleRealtimeReactionAdded: (realtimeEvent: RealtimeReactionEventType) => void;
    handleRealtimeReactionDeleted: (realtimeEvent: RealtimeReactionEventType) => void;
    private unsubscribeToRealtime;
    willUpdate(changedProperties: PropertyValues<this & WeavyContextProps & {
        app: AppType;
    }>): void;
    protected update(changedProperties: PropertyValues<this>): void;
    render(): import('lit-html').TemplateResult<1>;
    disconnectedCallback(): void;
}
export type WyPostsType = Constructor<WyPosts>;
export {};
//# sourceMappingURL=wy-posts.d.ts.map