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 interface ContractsRegisterInterface extends utils.Interface {
    functions: {
        'addCreditManager(address)': FunctionFragment;
        'addPool(address)': FunctionFragment;
        'creditManagers(uint256)': FunctionFragment;
        'getCreditManagers()': FunctionFragment;
        'getCreditManagersCount()': FunctionFragment;
        'getPools()': FunctionFragment;
        'getPoolsCount()': FunctionFragment;
        'isCreditManager(address)': FunctionFragment;
        'isPool(address)': FunctionFragment;
        'pause()': FunctionFragment;
        'paused()': FunctionFragment;
        'pools(uint256)': FunctionFragment;
        'unpause()': FunctionFragment;
        'version()': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'addCreditManager' | 'addPool' | 'creditManagers' | 'getCreditManagers' | 'getCreditManagersCount' | 'getPools' | 'getPoolsCount' | 'isCreditManager' | 'isPool' | 'pause' | 'paused' | 'pools' | 'unpause' | 'version'): FunctionFragment;
    encodeFunctionData(functionFragment: 'addCreditManager', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'addPool', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'creditManagers', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'getCreditManagers', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getCreditManagersCount', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPools', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPoolsCount', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isCreditManager', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'isPool', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'pause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'paused', values?: undefined): string;
    encodeFunctionData(functionFragment: 'pools', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'unpause', values?: undefined): string;
    encodeFunctionData(functionFragment: 'version', values?: undefined): string;
    decodeFunctionResult(functionFragment: 'addCreditManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'addPool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'creditManagers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCreditManagers', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCreditManagersCount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPools', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPoolsCount', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isCreditManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isPool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'paused', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'pools', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'unpause', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'version', data: BytesLike): Result;
    events: {
        'NewCreditManagerAdded(address)': EventFragment;
        'NewPoolAdded(address)': EventFragment;
        'Paused(address)': EventFragment;
        'Unpaused(address)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'NewCreditManagerAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'NewPoolAdded'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Paused'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Unpaused'): EventFragment;
}
export interface NewCreditManagerAddedEventObject {
    creditManager: string;
}
export declare type NewCreditManagerAddedEvent = TypedEvent<[string], NewCreditManagerAddedEventObject>;
export declare type NewCreditManagerAddedEventFilter = TypedEventFilter<NewCreditManagerAddedEvent>;
export interface NewPoolAddedEventObject {
    pool: string;
}
export declare type NewPoolAddedEvent = TypedEvent<[string], NewPoolAddedEventObject>;
export declare type NewPoolAddedEventFilter = TypedEventFilter<NewPoolAddedEvent>;
export interface PausedEventObject {
    account: string;
}
export declare type PausedEvent = TypedEvent<[string], PausedEventObject>;
export declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
export interface UnpausedEventObject {
    account: string;
}
export declare type UnpausedEvent = TypedEvent<[string], UnpausedEventObject>;
export declare type UnpausedEventFilter = TypedEventFilter<UnpausedEvent>;
export interface ContractsRegister extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: ContractsRegisterInterface;
    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: {
        addCreditManager(newCreditManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addPool(newPoolAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        creditManagers(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        getCreditManagers(overrides?: CallOverrides): Promise<[string[]]>;
        getCreditManagersCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        getPools(overrides?: CallOverrides): Promise<[string[]]>;
        getPoolsCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        isCreditManager(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        isPool(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        pools(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        version(overrides?: CallOverrides): Promise<[BigNumber]>;
    };
    addCreditManager(newCreditManager: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addPool(newPoolAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    creditManagers(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    getCreditManagers(overrides?: CallOverrides): Promise<string[]>;
    getCreditManagersCount(overrides?: CallOverrides): Promise<BigNumber>;
    getPools(overrides?: CallOverrides): Promise<string[]>;
    getPoolsCount(overrides?: CallOverrides): Promise<BigNumber>;
    isCreditManager(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    isPool(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    pause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    pools(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    unpause(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    version(overrides?: CallOverrides): Promise<BigNumber>;
    callStatic: {
        addCreditManager(newCreditManager: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        addPool(newPoolAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        creditManagers(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        getCreditManagers(overrides?: CallOverrides): Promise<string[]>;
        getCreditManagersCount(overrides?: CallOverrides): Promise<BigNumber>;
        getPools(overrides?: CallOverrides): Promise<string[]>;
        getPoolsCount(overrides?: CallOverrides): Promise<BigNumber>;
        isCreditManager(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        isPool(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        pause(overrides?: CallOverrides): Promise<void>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        pools(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        unpause(overrides?: CallOverrides): Promise<void>;
        version(overrides?: CallOverrides): Promise<BigNumber>;
    };
    filters: {
        'NewCreditManagerAdded(address)'(creditManager?: PromiseOrValue<string> | null): NewCreditManagerAddedEventFilter;
        NewCreditManagerAdded(creditManager?: PromiseOrValue<string> | null): NewCreditManagerAddedEventFilter;
        'NewPoolAdded(address)'(pool?: PromiseOrValue<string> | null): NewPoolAddedEventFilter;
        NewPoolAdded(pool?: PromiseOrValue<string> | null): NewPoolAddedEventFilter;
        'Paused(address)'(account?: null): PausedEventFilter;
        Paused(account?: null): PausedEventFilter;
        'Unpaused(address)'(account?: null): UnpausedEventFilter;
        Unpaused(account?: null): UnpausedEventFilter;
    };
    estimateGas: {
        addCreditManager(newCreditManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addPool(newPoolAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        creditManagers(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getCreditManagers(overrides?: CallOverrides): Promise<BigNumber>;
        getCreditManagersCount(overrides?: CallOverrides): Promise<BigNumber>;
        getPools(overrides?: CallOverrides): Promise<BigNumber>;
        getPoolsCount(overrides?: CallOverrides): Promise<BigNumber>;
        isCreditManager(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        isPool(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        pools(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        version(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        addCreditManager(newCreditManager: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addPool(newPoolAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        creditManagers(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCreditManagers(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCreditManagersCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPools(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPoolsCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isCreditManager(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isPool(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        pools(arg0: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unpause(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        version(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
