import PropTypes from 'prop-types';
import React, { PureComponent } from 'react';
export declare const withPoll: (WrappedComponent: $TSFixMe) => (props: $TSFixMe) => React.JSX.Element;
export declare class PollContextProvider extends PureComponent {
    static propTypes: {
        editorEvents: PropTypes.Requireable<PropTypes.InferProps<{
            subscribe: PropTypes.Requireable<(...args: any[]) => any>;
            unsubscribe: PropTypes.Requireable<(...args: any[]) => any>;
        }>>;
        settings: PropTypes.Requireable<PropTypes.InferProps<{
            siteToken: PropTypes.Requireable<string>;
            isWebView: PropTypes.Requireable<boolean>;
            getSiteMembers: PropTypes.Requireable<(...args: any[]) => any>;
            pollServiceApi: PropTypes.Requireable<object>;
        }>>;
        poll: PropTypes.Requireable<PropTypes.InferProps<{
            id: PropTypes.Requireable<string>;
            title: PropTypes.Requireable<string>;
            mediaId: PropTypes.Requireable<string>;
            settings: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
                multipleVotes: PropTypes.Validator<boolean>;
                votesDisplay: PropTypes.Validator<boolean>;
                votersDisplay: PropTypes.Validator<boolean>;
                voteRole: PropTypes.Validator<string>;
                resultsVisibility: PropTypes.Validator<string>;
            }>>>;
            options: PropTypes.Validator<(PropTypes.InferProps<{
                id: PropTypes.Requireable<string>;
                title: PropTypes.Requireable<string>;
                mediaId: PropTypes.Requireable<string>;
                count: PropTypes.Requireable<number>;
                rating: PropTypes.Requireable<number>;
            }> | null | undefined)[]>;
        }>>;
        setPoll: PropTypes.Requireable<(...args: any[]) => any>;
        children: PropTypes.Requireable<any>;
        t: PropTypes.Requireable<(...args: any[]) => any>;
    };
    state: $TSFixMe;
    constructor(props: $TSFixMe);
    componentWillReceiveProps(props: $TSFixMe): void;
    componentDidMount(): void;
    componentWillUnmount(): void;
    fetchPoll(): Promise<void>;
    populateWithData(poll: $TSFixMe): any;
    syncPoll: () => Promise<void>;
    updatePoll(poll: $TSFixMe): void;
    vote(optionId: $TSFixMe): Promise<void>;
    unvote(optionId: $TSFixMe): Promise<void>;
    getVoters(optionId: $TSFixMe, params: $TSFixMe): any;
    changePollTitle(title: $TSFixMe): void;
    changePollImage(url: $TSFixMe): void;
    updatePollOption(index: $TSFixMe, option: $TSFixMe): void;
    addOption(): void;
    removeOption(index: $TSFixMe): void;
    render(): React.JSX.Element;
}
//# sourceMappingURL=poll-context.d.ts.map