/// <reference types="react-redux" />
import * as React from 'react';
import { growPopulation, consumeFood, addCitizen, updateFoodPerSecond, turnOnFlag, addNotification } from 'actions';
import { Citizen, Flags } from '@clickopolis/core';
import './PopulationButton.scss';
export interface PopulationButtonProps {
    foodNeededForGrowth: number;
    population: number;
    food: any;
    growPopulation: Function;
    consumeFood: Function;
    addCitizen: addCitizen;
    updateFoodPerSecond: updateFoodPerSecond;
    farmer: Citizen;
    turnOnFlag: turnOnFlag;
    flags: Flags;
    addNotification: addNotification;
}
export interface PopulationButtonState {
    isGrowthPossible: boolean;
}
export declare class PopulationButtonBase extends React.Component<PopulationButtonProps, PopulationButtonState> {
    constructor(props: PopulationButtonProps);
    private handleGrowth;
    private isGrowthPossible;
    componentWillMount(): void;
    componentWillReceiveProps(nextProps: PopulationButtonProps): void;
    render(): JSX.Element;
}
export declare const PopulationButton: React.ComponentClass<Pick<{
    population: any;
    food: any;
    foodNeededForGrowth: any;
    farmer: any;
    flags: any;
} & {
    growPopulation: typeof growPopulation;
    consumeFood: typeof consumeFood;
    addCitizen: typeof addCitizen;
    updateFoodPerSecond: typeof updateFoodPerSecond;
    turnOnFlag: (target: string) => {
        type: "TURN_ON_FLAG";
        target: string;
    };
    addNotification: typeof addNotification;
}, never>, any> & {
    WrappedComponent: React.ComponentType<{
        population: any;
        food: any;
        foodNeededForGrowth: any;
        farmer: any;
        flags: any;
    } & {
        growPopulation: typeof growPopulation;
        consumeFood: typeof consumeFood;
        addCitizen: typeof addCitizen;
        updateFoodPerSecond: typeof updateFoodPerSecond;
        turnOnFlag: (target: string) => {
            type: "TURN_ON_FLAG";
            target: string;
        };
        addNotification: typeof addNotification;
    }>;
};
