import { AfterViewInit, ChangeDetectorRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { ChatClientService } from '../chat-client.service';
import { Poll, User } from 'stream-chat';
import { ChannelService } from '../channel.service';
import { CustomTemplatesService } from '../custom-templates.service';
import { NotificationService } from '../notification.service';
import * as i0 from "@angular/core";
/**
 * @internal
 */
export declare abstract class BasePollComponent implements OnChanges, AfterViewInit, OnDestroy {
    customTemplatesService: CustomTemplatesService;
    private chatClientService;
    private cdRef;
    private channelService;
    protected notificationService: NotificationService;
    /**
     * The poll id to display
     */
    pollId: string | undefined;
    /**
     * The message id the poll is attached to
     */
    messageId: string | undefined;
    canVote: boolean;
    canQueryVotes: boolean;
    private pollStateUnsubscribe?;
    private isViewInited;
    private capabilitySubscription?;
    protected dismissNotificationFn: (() => void) | undefined;
    constructor(customTemplatesService: CustomTemplatesService, chatClientService: ChatClientService, cdRef: ChangeDetectorRef, channelService: ChannelService, notificationService: NotificationService);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    protected get poll(): Poll | undefined;
    protected setupStateStoreSelector(): void;
    protected addNotification(...args: Parameters<typeof this.notificationService.addTemporaryNotification>): void;
    protected abstract stateStoreSelector(poll: Poll, markForCheck: () => void): () => void;
    protected get currentUser(): User | undefined;
    protected markForCheck(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BasePollComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BasePollComponent, "stream-base-poll", never, { "pollId": "pollId"; "messageId": "messageId"; }, {}, never, never, false, never>;
}
