import { LitElement, ReactiveController, ReactiveControllerHost } from 'lit';
import { QueryController } from './query-controller';
import { ContextConsumer } from '@lit/context';
import { WeavyType } from '../contexts/weavy-context';
import { QueryObserverResult } from '@tanstack/query-core';
import { PostQueryFilterType, PostsResultType } from '../types/posts.types';
import { AppType } from '../types/app.types';
import { RealtimeController } from './realtime-controller';
export interface UnreadConversationsProps {
    /**
     * Number of unread conversations.
     */
    readonly unread: number;
}
/**
 * Lit element controller for Conversation live data.
 *
 * - Requires a weavy context.
 * - May be filtered for different app types and agent ids.
 *
 * @fires {WyUnreadEventType} wy-unread - Emitted when the number of unread apps change.
 */
export declare class UnreadPostsController implements ReactiveController {
    #private;
    host: LitElement & ReactiveControllerHost;
    /**
     * Which posts to show.
     */
    filter: PostQueryFilterType;
    appId?: number | "feed";
    updateInterval: number;
    /**
     * The number of unread items for the current scope
     */
    get unread(): number;
    /**
     * Is the unread count pending?
     */
    get isUnreadPending(): boolean;
    /**
     * The underlying query result for the unread count.
     */
    get unreadResult(): QueryObserverResult<PostsResultType>;
    protected currentQuery: QueryController<PostsResultType>;
    protected postsRealtime: RealtimeController;
    protected registrationRequested: boolean;
    protected weavyContext?: ContextConsumer<{
        __context__: WeavyType;
    }, LitElement>;
    protected whenWeavyContext: Promise<WeavyType>;
    protected resolveWeavyContext?: (value: WeavyType | PromiseLike<WeavyType>) => void;
    protected get weavy(): WeavyType | undefined;
    constructor(host: LitElement);
    /**
     * Initiates context consumers
     */
    setContexts(): Promise<void>;
    /**
     * Dispatch a `wy-unread` event on the host.
     *
     * @fires {WyUnreadEventType} wy-unread - Emitted when the number of unread items change.
     */
    dispatchUnreadEvent(): void;
    /**
     * Request an update of the underlying query data.
     */
    refresh: () => void;
    track(app: AppType | "feed", afterId: number | undefined, filter: PostQueryFilterType): Promise<void>;
    hostConnected(): void;
    hostDisconnected(): void;
    hostUpdate(): void;
}
//# sourceMappingURL=unread-posts-controller.d.ts.map