/// <reference types="node" />
import type BN from "bn.js";
import type { ContractOptions } from "web3-eth-contract";
import type { EventLog } from "web3-core";
import type { EventEmitter } from "events";
import type { Callback, NonPayableTransactionObject, BlockType, ContractEventLog, BaseContract } from "./types";
export interface EventOptions {
    filter?: object;
    fromBlock?: BlockType;
    topics?: string[];
}
export type Initialized = ContractEventLog<{
    version: string;
    0: string;
}>;
export interface MasterDAORegistry extends BaseContract {
    constructor(jsonInterface: any[], address?: string, options?: ContractOptions): MasterDAORegistry;
    clone(): MasterDAORegistry;
    methods: {
        DAO_MEMBER_STORAGE_NAME(): NonPayableTransactionObject<string>;
        DAO_PARAMETER_STORAGE_NAME(): NonPayableTransactionObject<string>;
        DAO_PERMISSION_MANAGER_NAME(): NonPayableTransactionObject<string>;
        DAO_REGISTRY_NAME(): NonPayableTransactionObject<string>;
        DAO_TOKEN_FACTORY_NAME(): NonPayableTransactionObject<string>;
        DAO_TOKEN_REGISTRY_NAME(): NonPayableTransactionObject<string>;
        DAO_VAULT_NAME(): NonPayableTransactionObject<string>;
        DAO_VOTING_FACTORY_NAME(): NonPayableTransactionObject<string>;
        DAO_VOTING_REGISTRY_NAME(): NonPayableTransactionObject<string>;
        MASTER_DAO_FACTORY_DEP(): NonPayableTransactionObject<string>;
        MASTER_DAO_REGISTRY_RESOURCE(): NonPayableTransactionObject<string>;
        addProxyPool(name_: string, poolAddress_: string): NonPayableTransactionObject<void>;
        countPools(name_: string): NonPayableTransactionObject<string>;
        daoFactory(): NonPayableTransactionObject<string>;
        getImplementation(name_: string): NonPayableTransactionObject<string>;
        getInjector(): NonPayableTransactionObject<string>;
        getProxyBeacon(name_: string): NonPayableTransactionObject<string>;
        injectDependenciesToExistingPools(name_: string, offset_: number | string | BN, limit_: number | string | BN): NonPayableTransactionObject<void>;
        injectDependenciesToExistingPoolsWithData(name_: string, data_: string | number[], offset_: number | string | BN, limit_: number | string | BN): NonPayableTransactionObject<void>;
        listPools(name_: string, offset_: number | string | BN, limit_: number | string | BN): NonPayableTransactionObject<string[]>;
        masterAccess(): NonPayableTransactionObject<string>;
        setDependencies(registryAddress_: string, data_: string | number[]): NonPayableTransactionObject<void>;
        setInjector(injector_: string): NonPayableTransactionObject<void>;
        setNewImplementations(names_: string[], newImplementations_: string[]): NonPayableTransactionObject<void>;
    };
    events: {
        Initialized(cb?: Callback<Initialized>): EventEmitter;
        Initialized(options?: EventOptions, cb?: Callback<Initialized>): EventEmitter;
        allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
    };
    once(event: "Initialized", cb: Callback<Initialized>): void;
    once(event: "Initialized", options: EventOptions, cb: Callback<Initialized>): void;
}
