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 GovernanceFactory {
    type AstonicTokenAllocationParamsStruct = {
        airgrabAllocation: PromiseOrValue<BigNumberish>;
        astonicTreasuryAllocation: PromiseOrValue<BigNumberish>;
        additionalAllocationRecipients: PromiseOrValue<string>[];
        additionalAllocationAmounts: PromiseOrValue<BigNumberish>[];
    };
    type AstonicTokenAllocationParamsStructOutput = [
        BigNumber,
        BigNumber,
        string[],
        BigNumber[]
    ] & {
        airgrabAllocation: BigNumber;
        astonicTreasuryAllocation: BigNumber;
        additionalAllocationRecipients: string[];
        additionalAllocationAmounts: BigNumber[];
    };
}
export interface GovernanceFactoryInterface extends utils.Interface {
    functions: {
        "AIRGRAB_DURATION()": FunctionFragment;
        "AIRGRAB_LOCK_CLIFF()": FunctionFragment;
        "AIRGRAB_LOCK_SLOPE()": FunctionFragment;
        "GOVERNANCE_TIMELOCK_DELAY()": FunctionFragment;
        "GOVERNOR_PROPOSAL_THRESHOLD()": FunctionFragment;
        "GOVERNOR_QUORUM()": FunctionFragment;
        "GOVERNOR_VOTING_DELAY()": FunctionFragment;
        "GOVERNOR_VOTING_PERIOD()": FunctionFragment;
        "airgrab()": FunctionFragment;
        "airgrabEnds()": FunctionFragment;
        "astonicGovernor()": FunctionFragment;
        "astonicToken()": FunctionFragment;
        "createGovernance(address,(uint256,uint256,address[],uint256[]))": FunctionFragment;
        "emission()": FunctionFragment;
        "governanceTimelock()": FunctionFragment;
        "initialized()": FunctionFragment;
        "locking()": FunctionFragment;
        "owner()": FunctionFragment;
        "proxyAdmin()": FunctionFragment;
        "renounceOwnership()": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "watchdogMultiSig()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "AIRGRAB_DURATION" | "AIRGRAB_LOCK_CLIFF" | "AIRGRAB_LOCK_SLOPE" | "GOVERNANCE_TIMELOCK_DELAY" | "GOVERNOR_PROPOSAL_THRESHOLD" | "GOVERNOR_QUORUM" | "GOVERNOR_VOTING_DELAY" | "GOVERNOR_VOTING_PERIOD" | "airgrab" | "airgrabEnds" | "astonicGovernor" | "astonicToken" | "createGovernance" | "emission" | "governanceTimelock" | "initialized" | "locking" | "owner" | "proxyAdmin" | "renounceOwnership" | "transferOwnership" | "watchdogMultiSig"): FunctionFragment;
    encodeFunctionData(functionFragment: "AIRGRAB_DURATION", values?: undefined): string;
    encodeFunctionData(functionFragment: "AIRGRAB_LOCK_CLIFF", values?: undefined): string;
    encodeFunctionData(functionFragment: "AIRGRAB_LOCK_SLOPE", values?: undefined): string;
    encodeFunctionData(functionFragment: "GOVERNANCE_TIMELOCK_DELAY", values?: undefined): string;
    encodeFunctionData(functionFragment: "GOVERNOR_PROPOSAL_THRESHOLD", values?: undefined): string;
    encodeFunctionData(functionFragment: "GOVERNOR_QUORUM", values?: undefined): string;
    encodeFunctionData(functionFragment: "GOVERNOR_VOTING_DELAY", values?: undefined): string;
    encodeFunctionData(functionFragment: "GOVERNOR_VOTING_PERIOD", values?: undefined): string;
    encodeFunctionData(functionFragment: "airgrab", values?: undefined): string;
    encodeFunctionData(functionFragment: "airgrabEnds", values?: undefined): string;
    encodeFunctionData(functionFragment: "astonicGovernor", values?: undefined): string;
    encodeFunctionData(functionFragment: "astonicToken", values?: undefined): string;
    encodeFunctionData(functionFragment: "createGovernance", values: [
        PromiseOrValue<string>,
        GovernanceFactory.AstonicTokenAllocationParamsStruct
    ]): string;
    encodeFunctionData(functionFragment: "emission", values?: undefined): string;
    encodeFunctionData(functionFragment: "governanceTimelock", values?: undefined): string;
    encodeFunctionData(functionFragment: "initialized", values?: undefined): string;
    encodeFunctionData(functionFragment: "locking", values?: undefined): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "proxyAdmin", values?: undefined): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "watchdogMultiSig", values?: undefined): string;
    decodeFunctionResult(functionFragment: "AIRGRAB_DURATION", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "AIRGRAB_LOCK_CLIFF", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "AIRGRAB_LOCK_SLOPE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "GOVERNANCE_TIMELOCK_DELAY", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "GOVERNOR_PROPOSAL_THRESHOLD", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "GOVERNOR_QUORUM", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "GOVERNOR_VOTING_DELAY", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "GOVERNOR_VOTING_PERIOD", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "airgrab", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "airgrabEnds", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "astonicGovernor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "astonicToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createGovernance", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emission", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "governanceTimelock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialized", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "locking", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "proxyAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "watchdogMultiSig", data: BytesLike): Result;
    events: {
        "GovernanceCreated(address,address,address,address,address,address,address)": EventFragment;
        "OwnershipTransferred(address,address)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "GovernanceCreated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
}
export interface GovernanceCreatedEventObject {
    proxyAdmin: string;
    emission: string;
    astonicToken: string;
    airgrab: string;
    locking: string;
    governanceTimelock: string;
    astonicGovernor: string;
}
export type GovernanceCreatedEvent = TypedEvent<[
    string,
    string,
    string,
    string,
    string,
    string,
    string
], GovernanceCreatedEventObject>;
export type GovernanceCreatedEventFilter = TypedEventFilter<GovernanceCreatedEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export type OwnershipTransferredEvent = TypedEvent<[
    string,
    string
], OwnershipTransferredEventObject>;
export type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface GovernanceFactory extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: GovernanceFactoryInterface;
    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: {
        AIRGRAB_DURATION(overrides?: CallOverrides): Promise<[BigNumber]>;
        AIRGRAB_LOCK_CLIFF(overrides?: CallOverrides): Promise<[number]>;
        AIRGRAB_LOCK_SLOPE(overrides?: CallOverrides): Promise<[number]>;
        GOVERNANCE_TIMELOCK_DELAY(overrides?: CallOverrides): Promise<[BigNumber]>;
        GOVERNOR_PROPOSAL_THRESHOLD(overrides?: CallOverrides): Promise<[BigNumber]>;
        GOVERNOR_QUORUM(overrides?: CallOverrides): Promise<[BigNumber]>;
        GOVERNOR_VOTING_DELAY(overrides?: CallOverrides): Promise<[BigNumber]>;
        GOVERNOR_VOTING_PERIOD(overrides?: CallOverrides): Promise<[BigNumber]>;
        airgrab(overrides?: CallOverrides): Promise<[string]>;
        airgrabEnds(overrides?: CallOverrides): Promise<[BigNumber]>;
        astonicGovernor(overrides?: CallOverrides): Promise<[string]>;
        astonicToken(overrides?: CallOverrides): Promise<[string]>;
        createGovernance(watchdogMultiSig_: PromiseOrValue<string>, allocationParams: GovernanceFactory.AstonicTokenAllocationParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emission(overrides?: CallOverrides): Promise<[string]>;
        governanceTimelock(overrides?: CallOverrides): Promise<[string]>;
        initialized(overrides?: CallOverrides): Promise<[boolean]>;
        locking(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        proxyAdmin(overrides?: CallOverrides): Promise<[string]>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        watchdogMultiSig(overrides?: CallOverrides): Promise<[string]>;
    };
    AIRGRAB_DURATION(overrides?: CallOverrides): Promise<BigNumber>;
    AIRGRAB_LOCK_CLIFF(overrides?: CallOverrides): Promise<number>;
    AIRGRAB_LOCK_SLOPE(overrides?: CallOverrides): Promise<number>;
    GOVERNANCE_TIMELOCK_DELAY(overrides?: CallOverrides): Promise<BigNumber>;
    GOVERNOR_PROPOSAL_THRESHOLD(overrides?: CallOverrides): Promise<BigNumber>;
    GOVERNOR_QUORUM(overrides?: CallOverrides): Promise<BigNumber>;
    GOVERNOR_VOTING_DELAY(overrides?: CallOverrides): Promise<BigNumber>;
    GOVERNOR_VOTING_PERIOD(overrides?: CallOverrides): Promise<BigNumber>;
    airgrab(overrides?: CallOverrides): Promise<string>;
    airgrabEnds(overrides?: CallOverrides): Promise<BigNumber>;
    astonicGovernor(overrides?: CallOverrides): Promise<string>;
    astonicToken(overrides?: CallOverrides): Promise<string>;
    createGovernance(watchdogMultiSig_: PromiseOrValue<string>, allocationParams: GovernanceFactory.AstonicTokenAllocationParamsStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emission(overrides?: CallOverrides): Promise<string>;
    governanceTimelock(overrides?: CallOverrides): Promise<string>;
    initialized(overrides?: CallOverrides): Promise<boolean>;
    locking(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    proxyAdmin(overrides?: CallOverrides): Promise<string>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    watchdogMultiSig(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        AIRGRAB_DURATION(overrides?: CallOverrides): Promise<BigNumber>;
        AIRGRAB_LOCK_CLIFF(overrides?: CallOverrides): Promise<number>;
        AIRGRAB_LOCK_SLOPE(overrides?: CallOverrides): Promise<number>;
        GOVERNANCE_TIMELOCK_DELAY(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNOR_PROPOSAL_THRESHOLD(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNOR_QUORUM(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNOR_VOTING_DELAY(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNOR_VOTING_PERIOD(overrides?: CallOverrides): Promise<BigNumber>;
        airgrab(overrides?: CallOverrides): Promise<string>;
        airgrabEnds(overrides?: CallOverrides): Promise<BigNumber>;
        astonicGovernor(overrides?: CallOverrides): Promise<string>;
        astonicToken(overrides?: CallOverrides): Promise<string>;
        createGovernance(watchdogMultiSig_: PromiseOrValue<string>, allocationParams: GovernanceFactory.AstonicTokenAllocationParamsStruct, overrides?: CallOverrides): Promise<void>;
        emission(overrides?: CallOverrides): Promise<string>;
        governanceTimelock(overrides?: CallOverrides): Promise<string>;
        initialized(overrides?: CallOverrides): Promise<boolean>;
        locking(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        proxyAdmin(overrides?: CallOverrides): Promise<string>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        watchdogMultiSig(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        "GovernanceCreated(address,address,address,address,address,address,address)"(proxyAdmin?: null, emission?: null, astonicToken?: null, airgrab?: null, locking?: null, governanceTimelock?: null, astonicGovernor?: null): GovernanceCreatedEventFilter;
        GovernanceCreated(proxyAdmin?: null, emission?: null, astonicToken?: null, airgrab?: null, locking?: null, governanceTimelock?: null, astonicGovernor?: null): GovernanceCreatedEventFilter;
        "OwnershipTransferred(address,address)"(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
    };
    estimateGas: {
        AIRGRAB_DURATION(overrides?: CallOverrides): Promise<BigNumber>;
        AIRGRAB_LOCK_CLIFF(overrides?: CallOverrides): Promise<BigNumber>;
        AIRGRAB_LOCK_SLOPE(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNANCE_TIMELOCK_DELAY(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNOR_PROPOSAL_THRESHOLD(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNOR_QUORUM(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNOR_VOTING_DELAY(overrides?: CallOverrides): Promise<BigNumber>;
        GOVERNOR_VOTING_PERIOD(overrides?: CallOverrides): Promise<BigNumber>;
        airgrab(overrides?: CallOverrides): Promise<BigNumber>;
        airgrabEnds(overrides?: CallOverrides): Promise<BigNumber>;
        astonicGovernor(overrides?: CallOverrides): Promise<BigNumber>;
        astonicToken(overrides?: CallOverrides): Promise<BigNumber>;
        createGovernance(watchdogMultiSig_: PromiseOrValue<string>, allocationParams: GovernanceFactory.AstonicTokenAllocationParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emission(overrides?: CallOverrides): Promise<BigNumber>;
        governanceTimelock(overrides?: CallOverrides): Promise<BigNumber>;
        initialized(overrides?: CallOverrides): Promise<BigNumber>;
        locking(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        proxyAdmin(overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        watchdogMultiSig(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        AIRGRAB_DURATION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        AIRGRAB_LOCK_CLIFF(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        AIRGRAB_LOCK_SLOPE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        GOVERNANCE_TIMELOCK_DELAY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        GOVERNOR_PROPOSAL_THRESHOLD(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        GOVERNOR_QUORUM(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        GOVERNOR_VOTING_DELAY(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        GOVERNOR_VOTING_PERIOD(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        airgrab(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        airgrabEnds(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        astonicGovernor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        astonicToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        createGovernance(watchdogMultiSig_: PromiseOrValue<string>, allocationParams: GovernanceFactory.AstonicTokenAllocationParamsStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emission(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        governanceTimelock(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        initialized(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        locking(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        proxyAdmin(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        watchdogMultiSig(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
