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, PromiseOrValue } from "./common";
export declare namespace IVoting {
    type VotingParamsStruct = {
        votingStartTime: PromiseOrValue<BigNumberish>;
        votingEndTime: PromiseOrValue<BigNumberish>;
        vetoEndTime: PromiseOrValue<BigNumberish>;
        proposalExecutionP: PromiseOrValue<BigNumberish>;
        requiredQuorum: PromiseOrValue<BigNumberish>;
        requiredMajority: PromiseOrValue<BigNumberish>;
        requiredSMajority: PromiseOrValue<BigNumberish>;
        requiredSQuorum: PromiseOrValue<BigNumberish>;
    };
    type VotingParamsStructOutput = [
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        votingStartTime: BigNumber;
        votingEndTime: BigNumber;
        vetoEndTime: BigNumber;
        proposalExecutionP: BigNumber;
        requiredQuorum: BigNumber;
        requiredMajority: BigNumber;
        requiredSMajority: BigNumber;
        requiredSQuorum: BigNumber;
    };
    type VotingCountersStruct = {
        weightFor: PromiseOrValue<BigNumberish>;
        weightAgainst: PromiseOrValue<BigNumberish>;
        vetosCount: PromiseOrValue<BigNumberish>;
    };
    type VotingCountersStructOutput = [BigNumber, BigNumber, BigNumber] & {
        weightFor: BigNumber;
        weightAgainst: BigNumber;
        vetosCount: BigNumber;
    };
    type BaseProposalStruct = {
        remark: PromiseOrValue<string>;
        params: IVoting.VotingParamsStruct;
        counters: IVoting.VotingCountersStruct;
        executed: PromiseOrValue<boolean>;
    };
    type BaseProposalStructOutput = [
        string,
        IVoting.VotingParamsStructOutput,
        IVoting.VotingCountersStructOutput,
        boolean
    ] & {
        remark: string;
        params: IVoting.VotingParamsStructOutput;
        counters: IVoting.VotingCountersStructOutput;
        executed: boolean;
    };
    type VotingStatsStruct = {
        requiredQuorum: PromiseOrValue<BigNumberish>;
        currentQuorum: PromiseOrValue<BigNumberish>;
        requiredMajority: PromiseOrValue<BigNumberish>;
        currentMajority: PromiseOrValue<BigNumberish>;
        currentVetoPercentage: PromiseOrValue<BigNumberish>;
    };
    type VotingStatsStructOutput = [
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        requiredQuorum: BigNumber;
        currentQuorum: BigNumber;
        requiredMajority: BigNumber;
        currentMajority: BigNumber;
        currentVetoPercentage: BigNumber;
    };
}
export declare namespace IParametersVoting {
    type ParameterInfoStruct = {
        paramKey: PromiseOrValue<string>;
        paramType: PromiseOrValue<BigNumberish>;
        addrValue: PromiseOrValue<string>;
        boolValue: PromiseOrValue<boolean>;
        bytes32Value: PromiseOrValue<BytesLike>;
        strValue: PromiseOrValue<string>;
        uintValue: PromiseOrValue<BigNumberish>;
    };
    type ParameterInfoStructOutput = [
        string,
        number,
        string,
        boolean,
        string,
        string,
        BigNumber
    ] & {
        paramKey: string;
        paramType: number;
        addrValue: string;
        boolValue: boolean;
        bytes32Value: string;
        strValue: string;
        uintValue: BigNumber;
    };
}
export interface EPQFI_ParametersVotingInterface extends utils.Interface {
    functions: {
        "createAddrProposal(string,string,address)": FunctionFragment;
        "createBoolProposal(string,string,bool)": FunctionFragment;
        "createBytesProposal(string,string,bytes32)": FunctionFragment;
        "createProposal(string,(string,uint8,address,bool,bytes32,string,uint256)[])": FunctionFragment;
        "createStrProposal(string,string,string)": FunctionFragment;
        "createUintProposal(string,string,uint256)": FunctionFragment;
        "execute(uint256)": FunctionFragment;
        "expertsMembershipKey()": FunctionFragment;
        "expertsParametersKey()": FunctionFragment;
        "getParametersArr(uint256)": FunctionFragment;
        "getProposal(uint256)": FunctionFragment;
        "getProposalStats(uint256)": FunctionFragment;
        "getStatus(uint256)": FunctionFragment;
        "getVetosNumber(uint256)": FunctionFragment;
        "getVetosPercentage(uint256)": FunctionFragment;
        "hasRootVetoed(uint256,address)": FunctionFragment;
        "hasUserVoted(uint256,address)": FunctionFragment;
        "majorityKey()": FunctionFragment;
        "proposalCount()": FunctionFragment;
        "proposals(uint256)": FunctionFragment;
        "quorumKey()": FunctionFragment;
        "veto(uint256)": FunctionFragment;
        "vetoPeriodKey()": FunctionFragment;
        "voteAgainst(uint256)": FunctionFragment;
        "voteFor(uint256)": FunctionFragment;
        "votingPeriodKey()": FunctionFragment;
        "initialize(address)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "createAddrProposal" | "createBoolProposal" | "createBytesProposal" | "createProposal" | "createStrProposal" | "createUintProposal" | "execute" | "expertsMembershipKey" | "expertsParametersKey" | "getParametersArr" | "getProposal" | "getProposalStats" | "getStatus" | "getVetosNumber" | "getVetosPercentage" | "hasRootVetoed" | "hasUserVoted" | "majorityKey" | "proposalCount" | "proposals" | "quorumKey" | "veto" | "vetoPeriodKey" | "voteAgainst" | "voteFor" | "votingPeriodKey" | "initialize"): FunctionFragment;
    encodeFunctionData(functionFragment: "createAddrProposal", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "createBoolProposal", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<boolean>
    ]): string;
    encodeFunctionData(functionFragment: "createBytesProposal", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "createProposal", values: [PromiseOrValue<string>, IParametersVoting.ParameterInfoStruct[]]): string;
    encodeFunctionData(functionFragment: "createStrProposal", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "createUintProposal", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "execute", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "expertsMembershipKey", values?: undefined): string;
    encodeFunctionData(functionFragment: "expertsParametersKey", values?: undefined): string;
    encodeFunctionData(functionFragment: "getParametersArr", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getProposal", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getProposalStats", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getStatus", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getVetosNumber", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getVetosPercentage", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "hasRootVetoed", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "hasUserVoted", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "majorityKey", values?: undefined): string;
    encodeFunctionData(functionFragment: "proposalCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "proposals", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "quorumKey", values?: undefined): string;
    encodeFunctionData(functionFragment: "veto", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "vetoPeriodKey", values?: undefined): string;
    encodeFunctionData(functionFragment: "voteAgainst", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "voteFor", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "votingPeriodKey", values?: undefined): string;
    encodeFunctionData(functionFragment: "initialize", values: [PromiseOrValue<string>]): string;
    decodeFunctionResult(functionFragment: "createAddrProposal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createBoolProposal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createBytesProposal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createProposal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createStrProposal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createUintProposal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "execute", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "expertsMembershipKey", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "expertsParametersKey", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getParametersArr", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getProposal", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getProposalStats", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getStatus", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getVetosNumber", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getVetosPercentage", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasRootVetoed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasUserVoted", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "majorityKey", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "proposalCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "proposals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "quorumKey", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "veto", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "vetoPeriodKey", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "voteAgainst", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "voteFor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "votingPeriodKey", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    events: {
        "ProposalCreated(uint256,tuple)": EventFragment;
        "ProposalExecuted(uint256)": EventFragment;
        "UserVoted(uint256,uint8)": EventFragment;
        "VetoOccurred(uint256,address)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "ProposalCreated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ProposalExecuted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "UserVoted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "VetoOccurred"): EventFragment;
}
export interface ProposalCreatedEventObject {
    _id: BigNumber;
    _proposal: IVoting.BaseProposalStructOutput;
}
export declare type ProposalCreatedEvent = TypedEvent<[
    BigNumber,
    IVoting.BaseProposalStructOutput
], ProposalCreatedEventObject>;
export declare type ProposalCreatedEventFilter = TypedEventFilter<ProposalCreatedEvent>;
export interface ProposalExecutedEventObject {
    _proposalId: BigNumber;
}
export declare type ProposalExecutedEvent = TypedEvent<[
    BigNumber
], ProposalExecutedEventObject>;
export declare type ProposalExecutedEventFilter = TypedEventFilter<ProposalExecutedEvent>;
export interface UserVotedEventObject {
    _proposalId: BigNumber;
    _votingOption: number;
}
export declare type UserVotedEvent = TypedEvent<[
    BigNumber,
    number
], UserVotedEventObject>;
export declare type UserVotedEventFilter = TypedEventFilter<UserVotedEvent>;
export interface VetoOccurredEventObject {
    id: BigNumber;
    sender: string;
}
export declare type VetoOccurredEvent = TypedEvent<[
    BigNumber,
    string
], VetoOccurredEventObject>;
export declare type VetoOccurredEventFilter = TypedEventFilter<VetoOccurredEvent>;
export interface EPQFI_ParametersVoting extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: EPQFI_ParametersVotingInterface;
    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: {
        createAddrProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _addrValue: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createBoolProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _boolValue: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createBytesProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _bytes32Value: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createProposal(_remark: PromiseOrValue<string>, _parametersArr: IParametersVoting.ParameterInfoStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createStrProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _strValue: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createUintProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _uintValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        execute(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        expertsMembershipKey(overrides?: CallOverrides): Promise<[string]>;
        expertsParametersKey(overrides?: CallOverrides): Promise<[string]>;
        getParametersArr(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[IParametersVoting.ParameterInfoStructOutput[]]>;
        getProposal(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[IVoting.BaseProposalStructOutput]>;
        getProposalStats(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[IVoting.VotingStatsStructOutput]>;
        getStatus(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[number]>;
        getVetosNumber(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getVetosPercentage(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        hasRootVetoed(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        hasUserVoted(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        majorityKey(overrides?: CallOverrides): Promise<[string]>;
        proposalCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        proposals(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            IVoting.BaseProposalStructOutput,
            BigNumber
        ] & {
            base: IVoting.BaseProposalStructOutput;
            parametersSize: BigNumber;
        }>;
        quorumKey(overrides?: CallOverrides): Promise<[string]>;
        veto(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        vetoPeriodKey(overrides?: CallOverrides): Promise<[string]>;
        voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        votingPeriodKey(overrides?: CallOverrides): Promise<[string]>;
        initialize(_registry: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    createAddrProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _addrValue: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createBoolProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _boolValue: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createBytesProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _bytes32Value: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createProposal(_remark: PromiseOrValue<string>, _parametersArr: IParametersVoting.ParameterInfoStruct[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createStrProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _strValue: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createUintProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _uintValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    execute(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    expertsMembershipKey(overrides?: CallOverrides): Promise<string>;
    expertsParametersKey(overrides?: CallOverrides): Promise<string>;
    getParametersArr(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IParametersVoting.ParameterInfoStructOutput[]>;
    getProposal(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IVoting.BaseProposalStructOutput>;
    getProposalStats(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IVoting.VotingStatsStructOutput>;
    getStatus(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<number>;
    getVetosNumber(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getVetosPercentage(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    hasRootVetoed(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    hasUserVoted(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    majorityKey(overrides?: CallOverrides): Promise<string>;
    proposalCount(overrides?: CallOverrides): Promise<BigNumber>;
    proposals(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        IVoting.BaseProposalStructOutput,
        BigNumber
    ] & {
        base: IVoting.BaseProposalStructOutput;
        parametersSize: BigNumber;
    }>;
    quorumKey(overrides?: CallOverrides): Promise<string>;
    veto(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    vetoPeriodKey(overrides?: CallOverrides): Promise<string>;
    voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    votingPeriodKey(overrides?: CallOverrides): Promise<string>;
    initialize(_registry: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        createAddrProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _addrValue: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        createBoolProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _boolValue: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
        createBytesProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _bytes32Value: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        createProposal(_remark: PromiseOrValue<string>, _parametersArr: IParametersVoting.ParameterInfoStruct[], overrides?: CallOverrides): Promise<BigNumber>;
        createStrProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _strValue: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        createUintProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _uintValue: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        execute(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        expertsMembershipKey(overrides?: CallOverrides): Promise<string>;
        expertsParametersKey(overrides?: CallOverrides): Promise<string>;
        getParametersArr(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IParametersVoting.ParameterInfoStructOutput[]>;
        getProposal(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IVoting.BaseProposalStructOutput>;
        getProposalStats(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<IVoting.VotingStatsStructOutput>;
        getStatus(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<number>;
        getVetosNumber(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getVetosPercentage(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        hasRootVetoed(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        hasUserVoted(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        majorityKey(overrides?: CallOverrides): Promise<string>;
        proposalCount(overrides?: CallOverrides): Promise<BigNumber>;
        proposals(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            IVoting.BaseProposalStructOutput,
            BigNumber
        ] & {
            base: IVoting.BaseProposalStructOutput;
            parametersSize: BigNumber;
        }>;
        quorumKey(overrides?: CallOverrides): Promise<string>;
        veto(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        vetoPeriodKey(overrides?: CallOverrides): Promise<string>;
        voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        votingPeriodKey(overrides?: CallOverrides): Promise<string>;
        initialize(_registry: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "ProposalCreated(uint256,tuple)"(_id?: null, _proposal?: null): ProposalCreatedEventFilter;
        ProposalCreated(_id?: null, _proposal?: null): ProposalCreatedEventFilter;
        "ProposalExecuted(uint256)"(_proposalId?: PromiseOrValue<BigNumberish> | null): ProposalExecutedEventFilter;
        ProposalExecuted(_proposalId?: PromiseOrValue<BigNumberish> | null): ProposalExecutedEventFilter;
        "UserVoted(uint256,uint8)"(_proposalId?: PromiseOrValue<BigNumberish> | null, _votingOption?: null): UserVotedEventFilter;
        UserVoted(_proposalId?: PromiseOrValue<BigNumberish> | null, _votingOption?: null): UserVotedEventFilter;
        "VetoOccurred(uint256,address)"(id?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null): VetoOccurredEventFilter;
        VetoOccurred(id?: PromiseOrValue<BigNumberish> | null, sender?: PromiseOrValue<string> | null): VetoOccurredEventFilter;
    };
    estimateGas: {
        createAddrProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _addrValue: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createBoolProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _boolValue: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createBytesProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _bytes32Value: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createProposal(_remark: PromiseOrValue<string>, _parametersArr: IParametersVoting.ParameterInfoStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createStrProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _strValue: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createUintProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _uintValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        execute(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        expertsMembershipKey(overrides?: CallOverrides): Promise<BigNumber>;
        expertsParametersKey(overrides?: CallOverrides): Promise<BigNumber>;
        getParametersArr(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getProposal(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getProposalStats(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getStatus(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getVetosNumber(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getVetosPercentage(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        hasRootVetoed(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        hasUserVoted(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        majorityKey(overrides?: CallOverrides): Promise<BigNumber>;
        proposalCount(overrides?: CallOverrides): Promise<BigNumber>;
        proposals(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        quorumKey(overrides?: CallOverrides): Promise<BigNumber>;
        veto(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        vetoPeriodKey(overrides?: CallOverrides): Promise<BigNumber>;
        voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        votingPeriodKey(overrides?: CallOverrides): Promise<BigNumber>;
        initialize(_registry: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        createAddrProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _addrValue: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createBoolProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _boolValue: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createBytesProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _bytes32Value: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createProposal(_remark: PromiseOrValue<string>, _parametersArr: IParametersVoting.ParameterInfoStruct[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createStrProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _strValue: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createUintProposal(_remark: PromiseOrValue<string>, _parameterKey: PromiseOrValue<string>, _uintValue: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        execute(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        expertsMembershipKey(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        expertsParametersKey(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getParametersArr(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getProposal(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getProposalStats(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getStatus(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVetosNumber(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVetosPercentage(_proposalId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        hasRootVetoed(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        hasUserVoted(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        majorityKey(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        proposalCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        proposals(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        quorumKey(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        veto(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        vetoPeriodKey(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        voteAgainst(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        voteFor(_proposalId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        votingPeriodKey(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialize(_registry: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
