import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from './common';
export interface GrantFundInterface extends utils.Interface {
    functions: {
        '_voterInfo(uint256,address)': FunctionFragment;
        'ajnaTokenAddress()': FunctionFragment;
        'claimDelegateReward(uint24)': FunctionFragment;
        'execute(address[],uint256[],bytes[],bytes32)': FunctionFragment;
        'fundTreasury(uint256)': FunctionFragment;
        'fundingVote((uint256,int256)[])': FunctionFragment;
        'getChallengeStageStartBlock(uint256)': FunctionFragment;
        'getDelegateReward(uint24,address)': FunctionFragment;
        'getDescriptionHash(string)': FunctionFragment;
        'getDistributionId()': FunctionFragment;
        'getDistributionPeriodInfo(uint24)': FunctionFragment;
        'getFundedProposalSlate(bytes32)': FunctionFragment;
        'getFundingStageEndBlock(uint256)': FunctionFragment;
        'getFundingVotesCast(uint24,address)': FunctionFragment;
        'getHasClaimedRewards(uint256,address)': FunctionFragment;
        'getProposalInfo(uint256)': FunctionFragment;
        'getScreeningStageEndBlock(uint256)': FunctionFragment;
        'getScreeningVotesCast(uint256,address)': FunctionFragment;
        'getSlateHash(uint256[])': FunctionFragment;
        'getStage()': FunctionFragment;
        'getTopTenProposals(uint24)': FunctionFragment;
        'getVoterInfo(uint24,address)': FunctionFragment;
        'getVotesFunding(uint24,address)': FunctionFragment;
        'getVotesScreening(uint24,address)': FunctionFragment;
        'hashProposal(address[],uint256[],bytes[],bytes32)': FunctionFragment;
        'propose(address[],uint256[],bytes[],string)': FunctionFragment;
        'screeningVote((uint256,uint256)[])': FunctionFragment;
        'startNewDistributionPeriod()': FunctionFragment;
        'state(uint256)': FunctionFragment;
        'treasury()': FunctionFragment;
        'updateSlate(uint256[],uint24)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: '_voterInfo' | 'ajnaTokenAddress' | 'claimDelegateReward' | 'execute' | 'fundTreasury' | 'fundingVote' | 'getChallengeStageStartBlock' | 'getDelegateReward' | 'getDescriptionHash' | 'getDistributionId' | 'getDistributionPeriodInfo' | 'getFundedProposalSlate' | 'getFundingStageEndBlock' | 'getFundingVotesCast' | 'getHasClaimedRewards' | 'getProposalInfo' | 'getScreeningStageEndBlock' | 'getScreeningVotesCast' | 'getSlateHash' | 'getStage' | 'getTopTenProposals' | 'getVoterInfo' | 'getVotesFunding' | 'getVotesScreening' | 'hashProposal' | 'propose' | 'screeningVote' | 'startNewDistributionPeriod' | 'state' | 'treasury' | 'updateSlate'): FunctionFragment;
    encodeFunctionData(functionFragment: '_voterInfo', values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'ajnaTokenAddress', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimDelegateReward', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'execute', values: [string[], BigNumberish[], BytesLike[], BytesLike]): string;
    encodeFunctionData(functionFragment: 'fundTreasury', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'fundingVote', values: [{
        proposalId: BigNumberish;
        votesUsed: BigNumberish;
    }[]]): string;
    encodeFunctionData(functionFragment: 'getChallengeStageStartBlock', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getDelegateReward', values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'getDescriptionHash', values: [string]): string;
    encodeFunctionData(functionFragment: 'getDistributionId', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getDistributionPeriodInfo', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getFundedProposalSlate', values: [BytesLike]): string;
    encodeFunctionData(functionFragment: 'getFundingStageEndBlock', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getFundingVotesCast', values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'getHasClaimedRewards', values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'getProposalInfo', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getScreeningStageEndBlock', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getScreeningVotesCast', values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'getSlateHash', values: [BigNumberish[]]): string;
    encodeFunctionData(functionFragment: 'getStage', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTopTenProposals', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'getVoterInfo', values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'getVotesFunding', values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'getVotesScreening', values: [BigNumberish, string]): string;
    encodeFunctionData(functionFragment: 'hashProposal', values: [string[], BigNumberish[], BytesLike[], BytesLike]): string;
    encodeFunctionData(functionFragment: 'propose', values: [string[], BigNumberish[], BytesLike[], string]): string;
    encodeFunctionData(functionFragment: 'screeningVote', values: [{
        proposalId: BigNumberish;
        votes: BigNumberish;
    }[]]): string;
    encodeFunctionData(functionFragment: 'startNewDistributionPeriod', values?: undefined): string;
    encodeFunctionData(functionFragment: 'state', values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: 'treasury', values?: undefined): string;
    encodeFunctionData(functionFragment: 'updateSlate', values: [BigNumberish[], BigNumberish]): string;
    decodeFunctionResult(functionFragment: '_voterInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'ajnaTokenAddress', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimDelegateReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'execute', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fundTreasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'fundingVote', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getChallengeStageStartBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDelegateReward', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDescriptionHash', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDistributionId', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDistributionPeriodInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getFundedProposalSlate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getFundingStageEndBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getFundingVotesCast', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getHasClaimedRewards', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getProposalInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getScreeningStageEndBlock', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getScreeningVotesCast', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getSlateHash', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getStage', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTopTenProposals', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVoterInfo', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVotesFunding', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getVotesScreening', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'hashProposal', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'propose', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'screeningVote', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'startNewDistributionPeriod', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'state', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'treasury', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'updateSlate', data: BytesLike): Result;
    events: {
        'DelegateRewardClaimed(address,uint256,uint256)': EventFragment;
        'DistributionPeriodStarted(uint256,uint256,uint256)': EventFragment;
        'FundTreasury(uint256,uint256)': EventFragment;
        'FundedSlateUpdated(uint256,bytes32)': EventFragment;
        'ProposalCreated(uint256,address,address[],uint256[],string[],bytes[],uint256,uint256,string)': EventFragment;
        'ProposalExecuted(uint256)': EventFragment;
        'VoteCast(address,uint256,uint8,uint256,string)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'DelegateRewardClaimed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DistributionPeriodStarted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FundTreasury'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FundedSlateUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ProposalCreated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ProposalExecuted'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'VoteCast'): EventFragment;
}
export interface DelegateRewardClaimedEventObject {
    delegateeAddress: string;
    distributionId: BigNumber;
    rewardClaimed: BigNumber;
}
export type DelegateRewardClaimedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], DelegateRewardClaimedEventObject>;
export type DelegateRewardClaimedEventFilter = TypedEventFilter<DelegateRewardClaimedEvent>;
export interface DistributionPeriodStartedEventObject {
    distributionId: BigNumber;
    startBlock: BigNumber;
    endBlock: BigNumber;
}
export type DistributionPeriodStartedEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber
], DistributionPeriodStartedEventObject>;
export type DistributionPeriodStartedEventFilter = TypedEventFilter<DistributionPeriodStartedEvent>;
export interface FundTreasuryEventObject {
    amount: BigNumber;
    treasuryBalance: BigNumber;
}
export type FundTreasuryEvent = TypedEvent<[BigNumber, BigNumber], FundTreasuryEventObject>;
export type FundTreasuryEventFilter = TypedEventFilter<FundTreasuryEvent>;
export interface FundedSlateUpdatedEventObject {
    distributionId: BigNumber;
    fundedSlateHash: string;
}
export type FundedSlateUpdatedEvent = TypedEvent<[
    BigNumber,
    string
], FundedSlateUpdatedEventObject>;
export type FundedSlateUpdatedEventFilter = TypedEventFilter<FundedSlateUpdatedEvent>;
export interface ProposalCreatedEventObject {
    proposalId: BigNumber;
    proposer: string;
    targets: string[];
    values: BigNumber[];
    signatures: string[];
    calldatas: string[];
    startBlock: BigNumber;
    endBlock: BigNumber;
    description: string;
}
export type ProposalCreatedEvent = TypedEvent<[
    BigNumber,
    string,
    string[],
    BigNumber[],
    string[],
    string[],
    BigNumber,
    BigNumber,
    string
], ProposalCreatedEventObject>;
export type ProposalCreatedEventFilter = TypedEventFilter<ProposalCreatedEvent>;
export interface ProposalExecutedEventObject {
    proposalId: BigNumber;
}
export type ProposalExecutedEvent = TypedEvent<[BigNumber], ProposalExecutedEventObject>;
export type ProposalExecutedEventFilter = TypedEventFilter<ProposalExecutedEvent>;
export interface VoteCastEventObject {
    voter: string;
    proposalId: BigNumber;
    support: number;
    weight: BigNumber;
    reason: string;
}
export type VoteCastEvent = TypedEvent<[
    string,
    BigNumber,
    number,
    BigNumber,
    string
], VoteCastEventObject>;
export type VoteCastEventFilter = TypedEventFilter<VoteCastEvent>;
export interface GrantFund extends BaseContract {
    contractName: 'GrantFund';
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: GrantFundInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        _voterInfo(distributionId: BigNumberish, voter: string, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            fundingVotingPower: BigNumber;
            fundingRemainingVotingPower: BigNumber;
            screeningVotesCast: BigNumber;
            hasClaimedReward: boolean;
        }>;
        ajnaTokenAddress(overrides?: CallOverrides): Promise<[string]>;
        claimDelegateReward(distributionId_: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        execute(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], descriptionHash_: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        fundTreasury(fundingAmount_: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        fundingVote(voteParams_: {
            proposalId: BigNumberish;
            votesUsed: BigNumberish;
        }[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        getChallengeStageStartBlock(endBlock_: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        getDelegateReward(distributionId_: BigNumberish, voter_: string, overrides?: CallOverrides): Promise<[BigNumber] & {
            rewards_: BigNumber;
        }>;
        getDescriptionHash(description_: string, overrides?: CallOverrides): Promise<[string]>;
        getDistributionId(overrides?: CallOverrides): Promise<[number]>;
        getDistributionPeriodInfo(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<[number, number, number, BigNumber, BigNumber, string]>;
        getFundedProposalSlate(slateHash_: BytesLike, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        getFundingStageEndBlock(startBlock_: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        getFundingVotesCast(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<[[BigNumber, BigNumber] & {
            proposalId: BigNumber;
            votesUsed: BigNumber;
        }[]]>;
        getHasClaimedRewards(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<[boolean]>;
        getProposalInfo(proposalId_: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, number, BigNumber, BigNumber, BigNumber, boolean]>;
        getScreeningStageEndBlock(startBlock_: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber]>;
        getScreeningVotesCast(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<[BigNumber]>;
        getSlateHash(proposalIds_: BigNumberish[], overrides?: CallOverrides): Promise<[string]>;
        getStage(overrides?: CallOverrides): Promise<[string] & {
            stage_: string;
        }>;
        getTopTenProposals(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber[]]>;
        getVoterInfo(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber]>;
        getVotesFunding(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<[BigNumber] & {
            votes_: BigNumber;
        }>;
        getVotesScreening(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<[BigNumber] & {
            votes_: BigNumber;
        }>;
        hashProposal(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], descriptionHash_: BytesLike, overrides?: CallOverrides): Promise<[BigNumber] & {
            proposalId_: BigNumber;
        }>;
        propose(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], description_: string, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        screeningVote(voteParams_: {
            proposalId: BigNumberish;
            votes: BigNumberish;
        }[], overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        startNewDistributionPeriod(overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
        state(proposalId_: BigNumberish, overrides?: CallOverrides): Promise<[number]>;
        treasury(overrides?: CallOverrides): Promise<[BigNumber]>;
        updateSlate(proposalIds_: BigNumberish[], distributionId_: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<ContractTransaction>;
    };
    _voterInfo(distributionId: BigNumberish, voter: string, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        boolean
    ] & {
        fundingVotingPower: BigNumber;
        fundingRemainingVotingPower: BigNumber;
        screeningVotesCast: BigNumber;
        hasClaimedReward: boolean;
    }>;
    ajnaTokenAddress(overrides?: CallOverrides): Promise<string>;
    claimDelegateReward(distributionId_: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    execute(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], descriptionHash_: BytesLike, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    fundTreasury(fundingAmount_: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    fundingVote(voteParams_: {
        proposalId: BigNumberish;
        votesUsed: BigNumberish;
    }[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    getChallengeStageStartBlock(endBlock_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    getDelegateReward(distributionId_: BigNumberish, voter_: string, overrides?: CallOverrides): Promise<BigNumber>;
    getDescriptionHash(description_: string, overrides?: CallOverrides): Promise<string>;
    getDistributionId(overrides?: CallOverrides): Promise<number>;
    getDistributionPeriodInfo(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<[number, number, number, BigNumber, BigNumber, string]>;
    getFundedProposalSlate(slateHash_: BytesLike, overrides?: CallOverrides): Promise<BigNumber[]>;
    getFundingStageEndBlock(startBlock_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    getFundingVotesCast(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
        proposalId: BigNumber;
        votesUsed: BigNumber;
    }[]>;
    getHasClaimedRewards(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<boolean>;
    getProposalInfo(proposalId_: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, number, BigNumber, BigNumber, BigNumber, boolean]>;
    getScreeningStageEndBlock(startBlock_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
    getScreeningVotesCast(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
    getSlateHash(proposalIds_: BigNumberish[], overrides?: CallOverrides): Promise<string>;
    getStage(overrides?: CallOverrides): Promise<string>;
    getTopTenProposals(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber[]>;
    getVoterInfo(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber]>;
    getVotesFunding(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
    getVotesScreening(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
    hashProposal(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], descriptionHash_: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
    propose(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], description_: string, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    screeningVote(voteParams_: {
        proposalId: BigNumberish;
        votes: BigNumberish;
    }[], overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    startNewDistributionPeriod(overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    state(proposalId_: BigNumberish, overrides?: CallOverrides): Promise<number>;
    treasury(overrides?: CallOverrides): Promise<BigNumber>;
    updateSlate(proposalIds_: BigNumberish[], distributionId_: BigNumberish, overrides?: Overrides & {
        from?: string;
    }): Promise<ContractTransaction>;
    callStatic: {
        _voterInfo(distributionId: BigNumberish, voter: string, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            boolean
        ] & {
            fundingVotingPower: BigNumber;
            fundingRemainingVotingPower: BigNumber;
            screeningVotesCast: BigNumber;
            hasClaimedReward: boolean;
        }>;
        ajnaTokenAddress(overrides?: CallOverrides): Promise<string>;
        claimDelegateReward(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        execute(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], descriptionHash_: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
        fundTreasury(fundingAmount_: BigNumberish, overrides?: CallOverrides): Promise<void>;
        fundingVote(voteParams_: {
            proposalId: BigNumberish;
            votesUsed: BigNumberish;
        }[], overrides?: CallOverrides): Promise<BigNumber>;
        getChallengeStageStartBlock(endBlock_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getDelegateReward(distributionId_: BigNumberish, voter_: string, overrides?: CallOverrides): Promise<BigNumber>;
        getDescriptionHash(description_: string, overrides?: CallOverrides): Promise<string>;
        getDistributionId(overrides?: CallOverrides): Promise<number>;
        getDistributionPeriodInfo(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<[number, number, number, BigNumber, BigNumber, string]>;
        getFundedProposalSlate(slateHash_: BytesLike, overrides?: CallOverrides): Promise<BigNumber[]>;
        getFundingStageEndBlock(startBlock_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getFundingVotesCast(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<[BigNumber, BigNumber] & {
            proposalId: BigNumber;
            votesUsed: BigNumber;
        }[]>;
        getHasClaimedRewards(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<boolean>;
        getProposalInfo(proposalId_: BigNumberish, overrides?: CallOverrides): Promise<[BigNumber, number, BigNumber, BigNumber, BigNumber, boolean]>;
        getScreeningStageEndBlock(startBlock_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getScreeningVotesCast(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
        getSlateHash(proposalIds_: BigNumberish[], overrides?: CallOverrides): Promise<string>;
        getStage(overrides?: CallOverrides): Promise<string>;
        getTopTenProposals(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber[]>;
        getVoterInfo(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<[BigNumber, BigNumber, BigNumber]>;
        getVotesFunding(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
        getVotesScreening(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
        hashProposal(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], descriptionHash_: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
        propose(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], description_: string, overrides?: CallOverrides): Promise<BigNumber>;
        screeningVote(voteParams_: {
            proposalId: BigNumberish;
            votes: BigNumberish;
        }[], overrides?: CallOverrides): Promise<BigNumber>;
        startNewDistributionPeriod(overrides?: CallOverrides): Promise<number>;
        state(proposalId_: BigNumberish, overrides?: CallOverrides): Promise<number>;
        treasury(overrides?: CallOverrides): Promise<BigNumber>;
        updateSlate(proposalIds_: BigNumberish[], distributionId_: BigNumberish, overrides?: CallOverrides): Promise<boolean>;
    };
    filters: {
        'DelegateRewardClaimed(address,uint256,uint256)'(delegateeAddress?: string | null, distributionId?: BigNumberish | null, rewardClaimed?: null): DelegateRewardClaimedEventFilter;
        DelegateRewardClaimed(delegateeAddress?: string | null, distributionId?: BigNumberish | null, rewardClaimed?: null): DelegateRewardClaimedEventFilter;
        'DistributionPeriodStarted(uint256,uint256,uint256)'(distributionId?: BigNumberish | null, startBlock?: null, endBlock?: null): DistributionPeriodStartedEventFilter;
        DistributionPeriodStarted(distributionId?: BigNumberish | null, startBlock?: null, endBlock?: null): DistributionPeriodStartedEventFilter;
        'FundTreasury(uint256,uint256)'(amount?: null, treasuryBalance?: null): FundTreasuryEventFilter;
        FundTreasury(amount?: null, treasuryBalance?: null): FundTreasuryEventFilter;
        'FundedSlateUpdated(uint256,bytes32)'(distributionId?: BigNumberish | null, fundedSlateHash?: BytesLike | null): FundedSlateUpdatedEventFilter;
        FundedSlateUpdated(distributionId?: BigNumberish | null, fundedSlateHash?: BytesLike | null): FundedSlateUpdatedEventFilter;
        'ProposalCreated(uint256,address,address[],uint256[],string[],bytes[],uint256,uint256,string)'(proposalId?: null, proposer?: null, targets?: null, values?: null, signatures?: null, calldatas?: null, startBlock?: null, endBlock?: null, description?: null): ProposalCreatedEventFilter;
        ProposalCreated(proposalId?: null, proposer?: null, targets?: null, values?: null, signatures?: null, calldatas?: null, startBlock?: null, endBlock?: null, description?: null): ProposalCreatedEventFilter;
        'ProposalExecuted(uint256)'(proposalId?: null): ProposalExecutedEventFilter;
        ProposalExecuted(proposalId?: null): ProposalExecutedEventFilter;
        'VoteCast(address,uint256,uint8,uint256,string)'(voter?: string | null, proposalId?: null, support?: null, weight?: null, reason?: null): VoteCastEventFilter;
        VoteCast(voter?: string | null, proposalId?: null, support?: null, weight?: null, reason?: null): VoteCastEventFilter;
    };
    estimateGas: {
        _voterInfo(distributionId: BigNumberish, voter: string, overrides?: CallOverrides): Promise<BigNumber>;
        ajnaTokenAddress(overrides?: CallOverrides): Promise<BigNumber>;
        claimDelegateReward(distributionId_: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        execute(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], descriptionHash_: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        fundTreasury(fundingAmount_: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        fundingVote(voteParams_: {
            proposalId: BigNumberish;
            votesUsed: BigNumberish;
        }[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        getChallengeStageStartBlock(endBlock_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getDelegateReward(distributionId_: BigNumberish, voter_: string, overrides?: CallOverrides): Promise<BigNumber>;
        getDescriptionHash(description_: string, overrides?: CallOverrides): Promise<BigNumber>;
        getDistributionId(overrides?: CallOverrides): Promise<BigNumber>;
        getDistributionPeriodInfo(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getFundedProposalSlate(slateHash_: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
        getFundingStageEndBlock(startBlock_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getFundingVotesCast(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
        getHasClaimedRewards(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
        getProposalInfo(proposalId_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getScreeningStageEndBlock(startBlock_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getScreeningVotesCast(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
        getSlateHash(proposalIds_: BigNumberish[], overrides?: CallOverrides): Promise<BigNumber>;
        getStage(overrides?: CallOverrides): Promise<BigNumber>;
        getTopTenProposals(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getVoterInfo(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
        getVotesFunding(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
        getVotesScreening(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<BigNumber>;
        hashProposal(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], descriptionHash_: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
        propose(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], description_: string, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        screeningVote(voteParams_: {
            proposalId: BigNumberish;
            votes: BigNumberish;
        }[], overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        startNewDistributionPeriod(overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
        state(proposalId_: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        treasury(overrides?: CallOverrides): Promise<BigNumber>;
        updateSlate(proposalIds_: BigNumberish[], distributionId_: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        _voterInfo(distributionId: BigNumberish, voter: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        ajnaTokenAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimDelegateReward(distributionId_: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        execute(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], descriptionHash_: BytesLike, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        fundTreasury(fundingAmount_: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        fundingVote(voteParams_: {
            proposalId: BigNumberish;
            votesUsed: BigNumberish;
        }[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        getChallengeStageStartBlock(endBlock_: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDelegateReward(distributionId_: BigNumberish, voter_: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDescriptionHash(description_: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDistributionId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDistributionPeriodInfo(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getFundedProposalSlate(slateHash_: BytesLike, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getFundingStageEndBlock(startBlock_: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getFundingVotesCast(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getHasClaimedRewards(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getProposalInfo(proposalId_: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getScreeningStageEndBlock(startBlock_: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getScreeningVotesCast(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getSlateHash(proposalIds_: BigNumberish[], overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStage(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTopTenProposals(distributionId_: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVoterInfo(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVotesFunding(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVotesScreening(distributionId_: BigNumberish, account_: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        hashProposal(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], descriptionHash_: BytesLike, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        propose(targets_: string[], values_: BigNumberish[], calldatas_: BytesLike[], description_: string, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        screeningVote(voteParams_: {
            proposalId: BigNumberish;
            votes: BigNumberish;
        }[], overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        startNewDistributionPeriod(overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
        state(proposalId_: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        treasury(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        updateSlate(proposalIds_: BigNumberish[], distributionId_: BigNumberish, overrides?: Overrides & {
            from?: string;
        }): Promise<PopulatedTransaction>;
    };
}
