/// <reference types="node" />
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 AddedContract = ContractEventLog<{
    name: string;
    contractAddress: string;
    isProxy: boolean;
    0: string;
    1: string;
    2: boolean;
}>;
export type Initialized_uint8 = ContractEventLog<{
    version: string;
    0: string;
}>;
export type Initialized_ = ContractEventLog<{}>;
export type RemovedContract = ContractEventLog<{
    name: string;
    0: string;
}>;
export interface DAORegistry extends BaseContract {
    constructor(jsonInterface: any[], address?: string, options?: ContractOptions): DAORegistry;
    clone(): DAORegistry;
    methods: {
        DAO_MEMBER_STORAGE_NAME(): NonPayableTransactionObject<string>;
        DAO_PARAMETER_STORAGE_NAME(): NonPayableTransactionObject<string>;
        DAO_REGISTRY_RESOURCE(): NonPayableTransactionObject<string>;
        DAO_VAULT_NAME(): NonPayableTransactionObject<string>;
        TOKEN_FACTORY_NAME(): NonPayableTransactionObject<string>;
        TOKEN_REGISTRY_NAME(): NonPayableTransactionObject<string>;
        VOTING_FACTORY_NAME(): NonPayableTransactionObject<string>;
        VOTING_REGISTRY_NAME(): NonPayableTransactionObject<string>;
        __DAORegistry_init(permissionManager_: string, masterAccess_: string, panelName_: string, registryResource_: string): NonPayableTransactionObject<void>;
        addContract(name_: string, contractAddress_: string): NonPayableTransactionObject<void>;
        addPanel(panelName_: string): NonPayableTransactionObject<void>;
        addProxyContract(name_: string, contractAddress_: string): NonPayableTransactionObject<void>;
        checkPermission(account_: string, permission_: string): NonPayableTransactionObject<boolean>;
        getContract(name_: string): NonPayableTransactionObject<string>;
        getDAOMemberStorage(panelName_: string): NonPayableTransactionObject<string>;
        getDAOPanelResource(moduleType_: string, panelName_: string): NonPayableTransactionObject<string>;
        getDAOParameterStorage(panelName_: string): NonPayableTransactionObject<string>;
        getDAOVault(): NonPayableTransactionObject<string>;
        getDAOVoting(panelName_: string): NonPayableTransactionObject<string>;
        getImplementation(name_: string): NonPayableTransactionObject<string>;
        getPanels(): NonPayableTransactionObject<string[]>;
        getPermissionManager(): NonPayableTransactionObject<string>;
        getProxyUpgrader(): NonPayableTransactionObject<string>;
        getResource(): NonPayableTransactionObject<string>;
        getTokenFactory(): NonPayableTransactionObject<string>;
        getTokenRegistry(): NonPayableTransactionObject<string>;
        getVotingFactory(): NonPayableTransactionObject<string>;
        getVotingRegistry(): NonPayableTransactionObject<string>;
        hasContract(name_: string): NonPayableTransactionObject<boolean>;
        injectDependencies(name_: string): NonPayableTransactionObject<void>;
        justAddProxyContract(name_: string, contractAddress_: string): NonPayableTransactionObject<void>;
        permissionManager(): NonPayableTransactionObject<string>;
        removeContract(name_: string): NonPayableTransactionObject<void>;
        removePanel(panelName_: string): NonPayableTransactionObject<void>;
        upgradeContract(name_: string, newImplementation_: string): NonPayableTransactionObject<void>;
        upgradeContractAndCall(name_: string, newImplementation_: string, data_: string | number[]): NonPayableTransactionObject<void>;
    };
    events: {
        AddedContract(cb?: Callback<AddedContract>): EventEmitter;
        AddedContract(options?: EventOptions, cb?: Callback<AddedContract>): EventEmitter;
        "Initialized(uint8)"(cb?: Callback<Initialized_uint8>): EventEmitter;
        "Initialized(uint8)"(options?: EventOptions, cb?: Callback<Initialized_uint8>): EventEmitter;
        "Initialized()"(cb?: Callback<Initialized_>): EventEmitter;
        "Initialized()"(options?: EventOptions, cb?: Callback<Initialized_>): EventEmitter;
        RemovedContract(cb?: Callback<RemovedContract>): EventEmitter;
        RemovedContract(options?: EventOptions, cb?: Callback<RemovedContract>): EventEmitter;
        allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
    };
    once(event: "AddedContract", cb: Callback<AddedContract>): void;
    once(event: "AddedContract", options: EventOptions, cb: Callback<AddedContract>): void;
    once(event: "RemovedContract", cb: Callback<RemovedContract>): void;
    once(event: "RemovedContract", options: EventOptions, cb: Callback<RemovedContract>): void;
}
