import { BigNumberish, BytesLike, BigNumber, utils, BaseContract, Signer, CallOverrides, Overrides, ContractTransaction, PopulatedTransaction } from 'ethers';
import { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import { Provider, Listener } from '@ethersproject/providers';
import { TypedEvent, TypedEventFilter, TypedListener, OnEvent } from './common.js';

declare namespace IByocRegistry {
    type CustomContractInstanceStruct = {
        contractId: string;
        publishTimestamp: BigNumberish;
        publishMetadataUri: string;
        bytecodeHash: BytesLike;
        implementation: string;
    };
    type CustomContractInstanceStructOutput = [
        string,
        BigNumber,
        string,
        string,
        string
    ] & {
        contractId: string;
        publishTimestamp: BigNumber;
        publishMetadataUri: string;
        bytecodeHash: string;
        implementation: string;
    };
}
interface ByocRegistryInterface extends utils.Interface {
    contractName: string | "ByocRegistry";
    functions: {
        "DEFAULT_ADMIN_ROLE()": FunctionFragment;
        "addToPublicList(address,string)": FunctionFragment;
        "approveOperator(address,bool)": FunctionFragment;
        "getAllPublicPublishedContracts()": FunctionFragment;
        "getAllPublishedContracts(address)": FunctionFragment;
        "getPublicId(address,string)": FunctionFragment;
        "getPublishedContract(address,string)": FunctionFragment;
        "getPublishedContractVersions(address,string)": FunctionFragment;
        "getRoleAdmin(bytes32)": FunctionFragment;
        "getRoleMember(bytes32,uint256)": FunctionFragment;
        "getRoleMemberCount(bytes32)": FunctionFragment;
        "grantRole(bytes32,address)": FunctionFragment;
        "hasRole(bytes32,address)": FunctionFragment;
        "isApprovedByPublisher(address,address)": FunctionFragment;
        "isPaused()": FunctionFragment;
        "isTrustedForwarder(address)": FunctionFragment;
        "multicall(bytes[])": FunctionFragment;
        "nextPublicId()": FunctionFragment;
        "publishContract(address,string,bytes32,address,string)": FunctionFragment;
        "removeFromPublicList(address,string)": FunctionFragment;
        "renounceRole(bytes32,address)": FunctionFragment;
        "revokeRole(bytes32,address)": FunctionFragment;
        "setPause(bool)": FunctionFragment;
        "supportsInterface(bytes4)": FunctionFragment;
        "unpublishContract(address,string)": FunctionFragment;
    };
    encodeFunctionData(functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "addToPublicList", values: [string, string]): string;
    encodeFunctionData(functionFragment: "approveOperator", values: [string, boolean]): string;
    encodeFunctionData(functionFragment: "getAllPublicPublishedContracts", values?: undefined): string;
    encodeFunctionData(functionFragment: "getAllPublishedContracts", values: [string]): string;
    encodeFunctionData(functionFragment: "getPublicId", values: [string, string]): string;
    encodeFunctionData(functionFragment: "getPublishedContract", values: [string, string]): string;
    encodeFunctionData(functionFragment: "getPublishedContractVersions", values: [string, string]): string;
    encodeFunctionData(functionFragment: "getRoleAdmin", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "getRoleMember", values: [BytesLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getRoleMemberCount", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "grantRole", values: [BytesLike, string]): string;
    encodeFunctionData(functionFragment: "hasRole", values: [BytesLike, string]): string;
    encodeFunctionData(functionFragment: "isApprovedByPublisher", values: [string, string]): string;
    encodeFunctionData(functionFragment: "isPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "isTrustedForwarder", values: [string]): string;
    encodeFunctionData(functionFragment: "multicall", values: [BytesLike[]]): string;
    encodeFunctionData(functionFragment: "nextPublicId", values?: undefined): string;
    encodeFunctionData(functionFragment: "publishContract", values: [string, string, BytesLike, string, string]): string;
    encodeFunctionData(functionFragment: "removeFromPublicList", values: [string, string]): string;
    encodeFunctionData(functionFragment: "renounceRole", values: [BytesLike, string]): string;
    encodeFunctionData(functionFragment: "revokeRole", values: [BytesLike, string]): string;
    encodeFunctionData(functionFragment: "setPause", values: [boolean]): string;
    encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "unpublishContract", values: [string, string]): string;
    decodeFunctionResult(functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "addToPublicList", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "approveOperator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAllPublicPublishedContracts", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAllPublishedContracts", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPublicId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPublishedContract", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPublishedContractVersions", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleMemberCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isApprovedByPublisher", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isTrustedForwarder", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "nextPublicId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "publishContract", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "removeFromPublicList", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unpublishContract", data: BytesLike): Result;
    events: {
        "AddedContractToPublicList(address,string)": EventFragment;
        "Approved(address,address,bool)": EventFragment;
        "ContractPublished(address,address,tuple)": EventFragment;
        "ContractUnpublished(address,address,string)": EventFragment;
        "Paused(bool)": EventFragment;
        "RemovedContractToPublicList(address,string)": EventFragment;
        "RoleAdminChanged(bytes32,bytes32,bytes32)": EventFragment;
        "RoleGranted(bytes32,address,address)": EventFragment;
        "RoleRevoked(bytes32,address,address)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "AddedContractToPublicList"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Approved"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ContractPublished"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ContractUnpublished"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Paused"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RemovedContractToPublicList"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleAdminChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleGranted"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment;
}
declare type AddedContractToPublicListEvent = TypedEvent<[
    string,
    string
], {
    publisher: string;
    contractId: string;
}>;
declare type AddedContractToPublicListEventFilter = TypedEventFilter<AddedContractToPublicListEvent>;
declare type ApprovedEvent = TypedEvent<[
    string,
    string,
    boolean
], {
    publisher: string;
    operator: string;
    isApproved: boolean;
}>;
declare type ApprovedEventFilter = TypedEventFilter<ApprovedEvent>;
declare type ContractPublishedEvent = TypedEvent<[
    string,
    string,
    IByocRegistry.CustomContractInstanceStructOutput
], {
    operator: string;
    publisher: string;
    publishedContract: IByocRegistry.CustomContractInstanceStructOutput;
}>;
declare type ContractPublishedEventFilter = TypedEventFilter<ContractPublishedEvent>;
declare type ContractUnpublishedEvent = TypedEvent<[
    string,
    string,
    string
], {
    operator: string;
    publisher: string;
    contractId: string;
}>;
declare type ContractUnpublishedEventFilter = TypedEventFilter<ContractUnpublishedEvent>;
declare type PausedEvent = TypedEvent<[boolean], {
    isPaused: boolean;
}>;
declare type PausedEventFilter = TypedEventFilter<PausedEvent>;
declare type RemovedContractToPublicListEvent = TypedEvent<[
    string,
    string
], {
    publisher: string;
    contractId: string;
}>;
declare type RemovedContractToPublicListEventFilter = TypedEventFilter<RemovedContractToPublicListEvent>;
declare type RoleAdminChangedEvent = TypedEvent<[
    string,
    string,
    string
], {
    role: string;
    previousAdminRole: string;
    newAdminRole: string;
}>;
declare type RoleAdminChangedEventFilter = TypedEventFilter<RoleAdminChangedEvent>;
declare type RoleGrantedEvent = TypedEvent<[
    string,
    string,
    string
], {
    role: string;
    account: string;
    sender: string;
}>;
declare type RoleGrantedEventFilter = TypedEventFilter<RoleGrantedEvent>;
declare type RoleRevokedEvent = TypedEvent<[
    string,
    string,
    string
], {
    role: string;
    account: string;
    sender: string;
}>;
declare type RoleRevokedEventFilter = TypedEventFilter<RoleRevokedEvent>;
interface ByocRegistry extends BaseContract {
    contractName: string | "ByocRegistry";
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: ByocRegistryInterface;
    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: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<[string]>;
        addToPublicList(_publisher: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        approveOperator(_operator: string, _toApprove: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        getAllPublicPublishedContracts(overrides?: CallOverrides): Promise<[
            IByocRegistry.CustomContractInstanceStructOutput[]
        ] & {
            published: IByocRegistry.CustomContractInstanceStructOutput[];
        }>;
        getAllPublishedContracts(_publisher: string, overrides?: CallOverrides): Promise<[
            IByocRegistry.CustomContractInstanceStructOutput[]
        ] & {
            published: IByocRegistry.CustomContractInstanceStructOutput[];
        }>;
        getPublicId(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<[BigNumber] & {
            publicId: BigNumber;
        }>;
        getPublishedContract(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<[
            IByocRegistry.CustomContractInstanceStructOutput
        ] & {
            published: IByocRegistry.CustomContractInstanceStructOutput;
        }>;
        getPublishedContractVersions(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<[
            IByocRegistry.CustomContractInstanceStructOutput[]
        ] & {
            published: IByocRegistry.CustomContractInstanceStructOutput[];
        }>;
        getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<[string]>;
        getRoleMember(role: BytesLike, index: BigNumberish, overrides?: CallOverrides): Promise<[string]>;
        getRoleMemberCount(role: BytesLike, overrides?: CallOverrides): Promise<[BigNumber]>;
        grantRole(role: BytesLike, account: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        hasRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<[boolean]>;
        isApprovedByPublisher(arg0: string, arg1: string, overrides?: CallOverrides): Promise<[boolean]>;
        isPaused(overrides?: CallOverrides): Promise<[boolean]>;
        isTrustedForwarder(forwarder: string, overrides?: CallOverrides): Promise<[boolean]>;
        multicall(data: BytesLike[], overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        nextPublicId(overrides?: CallOverrides): Promise<[BigNumber]>;
        publishContract(_publisher: string, _publishMetadataUri: string, _bytecodeHash: BytesLike, _implementation: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        removeFromPublicList(_publisher: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        renounceRole(role: BytesLike, account: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        revokeRole(role: BytesLike, account: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        setPause(_pause: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
        supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise<[boolean]>;
        unpublishContract(_publisher: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<ContractTransaction>;
    };
    DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
    addToPublicList(_publisher: string, _contractId: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    approveOperator(_operator: string, _toApprove: boolean, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    getAllPublicPublishedContracts(overrides?: CallOverrides): Promise<IByocRegistry.CustomContractInstanceStructOutput[]>;
    getAllPublishedContracts(_publisher: string, overrides?: CallOverrides): Promise<IByocRegistry.CustomContractInstanceStructOutput[]>;
    getPublicId(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<BigNumber>;
    getPublishedContract(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<IByocRegistry.CustomContractInstanceStructOutput>;
    getPublishedContractVersions(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<IByocRegistry.CustomContractInstanceStructOutput[]>;
    getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<string>;
    getRoleMember(role: BytesLike, index: BigNumberish, overrides?: CallOverrides): Promise<string>;
    getRoleMemberCount(role: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
    grantRole(role: BytesLike, account: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    hasRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<boolean>;
    isApprovedByPublisher(arg0: string, arg1: string, overrides?: CallOverrides): Promise<boolean>;
    isPaused(overrides?: CallOverrides): Promise<boolean>;
    isTrustedForwarder(forwarder: string, overrides?: CallOverrides): Promise<boolean>;
    multicall(data: BytesLike[], overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    nextPublicId(overrides?: CallOverrides): Promise<BigNumber>;
    publishContract(_publisher: string, _publishMetadataUri: string, _bytecodeHash: BytesLike, _implementation: string, _contractId: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    removeFromPublicList(_publisher: string, _contractId: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    renounceRole(role: BytesLike, account: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    revokeRole(role: BytesLike, account: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    setPause(_pause: boolean, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise<boolean>;
    unpublishContract(_publisher: string, _contractId: string, overrides?: Overrides & {
        from?: string | Promise<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<string>;
        addToPublicList(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<void>;
        approveOperator(_operator: string, _toApprove: boolean, overrides?: CallOverrides): Promise<void>;
        getAllPublicPublishedContracts(overrides?: CallOverrides): Promise<IByocRegistry.CustomContractInstanceStructOutput[]>;
        getAllPublishedContracts(_publisher: string, overrides?: CallOverrides): Promise<IByocRegistry.CustomContractInstanceStructOutput[]>;
        getPublicId(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<BigNumber>;
        getPublishedContract(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<IByocRegistry.CustomContractInstanceStructOutput>;
        getPublishedContractVersions(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<IByocRegistry.CustomContractInstanceStructOutput[]>;
        getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<string>;
        getRoleMember(role: BytesLike, index: BigNumberish, overrides?: CallOverrides): Promise<string>;
        getRoleMemberCount(role: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<void>;
        hasRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<boolean>;
        isApprovedByPublisher(arg0: string, arg1: string, overrides?: CallOverrides): Promise<boolean>;
        isPaused(overrides?: CallOverrides): Promise<boolean>;
        isTrustedForwarder(forwarder: string, overrides?: CallOverrides): Promise<boolean>;
        multicall(data: BytesLike[], overrides?: CallOverrides): Promise<string[]>;
        nextPublicId(overrides?: CallOverrides): Promise<BigNumber>;
        publishContract(_publisher: string, _publishMetadataUri: string, _bytecodeHash: BytesLike, _implementation: string, _contractId: string, overrides?: CallOverrides): Promise<void>;
        removeFromPublicList(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<void>;
        renounceRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<void>;
        revokeRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<void>;
        setPause(_pause: boolean, overrides?: CallOverrides): Promise<void>;
        supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise<boolean>;
        unpublishContract(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "AddedContractToPublicList(address,string)"(publisher?: string | null, contractId?: string | null): AddedContractToPublicListEventFilter;
        AddedContractToPublicList(publisher?: string | null, contractId?: string | null): AddedContractToPublicListEventFilter;
        "Approved(address,address,bool)"(publisher?: string | null, operator?: string | null, isApproved?: null): ApprovedEventFilter;
        Approved(publisher?: string | null, operator?: string | null, isApproved?: null): ApprovedEventFilter;
        "ContractPublished(address,address,tuple)"(operator?: string | null, publisher?: string | null, publishedContract?: null): ContractPublishedEventFilter;
        ContractPublished(operator?: string | null, publisher?: string | null, publishedContract?: null): ContractPublishedEventFilter;
        "ContractUnpublished(address,address,string)"(operator?: string | null, publisher?: string | null, contractId?: string | null): ContractUnpublishedEventFilter;
        ContractUnpublished(operator?: string | null, publisher?: string | null, contractId?: string | null): ContractUnpublishedEventFilter;
        "Paused(bool)"(isPaused?: null): PausedEventFilter;
        Paused(isPaused?: null): PausedEventFilter;
        "RemovedContractToPublicList(address,string)"(publisher?: string | null, contractId?: string | null): RemovedContractToPublicListEventFilter;
        RemovedContractToPublicList(publisher?: string | null, contractId?: string | null): RemovedContractToPublicListEventFilter;
        "RoleAdminChanged(bytes32,bytes32,bytes32)"(role?: BytesLike | null, previousAdminRole?: BytesLike | null, newAdminRole?: BytesLike | null): RoleAdminChangedEventFilter;
        RoleAdminChanged(role?: BytesLike | null, previousAdminRole?: BytesLike | null, newAdminRole?: BytesLike | null): RoleAdminChangedEventFilter;
        "RoleGranted(bytes32,address,address)"(role?: BytesLike | null, account?: string | null, sender?: string | null): RoleGrantedEventFilter;
        RoleGranted(role?: BytesLike | null, account?: string | null, sender?: string | null): RoleGrantedEventFilter;
        "RoleRevoked(bytes32,address,address)"(role?: BytesLike | null, account?: string | null, sender?: string | null): RoleRevokedEventFilter;
        RoleRevoked(role?: BytesLike | null, account?: string | null, sender?: string | null): RoleRevokedEventFilter;
    };
    estimateGas: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<BigNumber>;
        addToPublicList(_publisher: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        approveOperator(_operator: string, _toApprove: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        getAllPublicPublishedContracts(overrides?: CallOverrides): Promise<BigNumber>;
        getAllPublishedContracts(_publisher: string, overrides?: CallOverrides): Promise<BigNumber>;
        getPublicId(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<BigNumber>;
        getPublishedContract(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<BigNumber>;
        getPublishedContractVersions(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleMember(role: BytesLike, index: BigNumberish, overrides?: CallOverrides): Promise<BigNumber>;
        getRoleMemberCount(role: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
        grantRole(role: BytesLike, account: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        hasRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<BigNumber>;
        isApprovedByPublisher(arg0: string, arg1: string, overrides?: CallOverrides): Promise<BigNumber>;
        isPaused(overrides?: CallOverrides): Promise<BigNumber>;
        isTrustedForwarder(forwarder: string, overrides?: CallOverrides): Promise<BigNumber>;
        multicall(data: BytesLike[], overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        nextPublicId(overrides?: CallOverrides): Promise<BigNumber>;
        publishContract(_publisher: string, _publishMetadataUri: string, _bytecodeHash: BytesLike, _implementation: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        removeFromPublicList(_publisher: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        renounceRole(role: BytesLike, account: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        revokeRole(role: BytesLike, account: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        setPause(_pause: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
        supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise<BigNumber>;
        unpublishContract(_publisher: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        DEFAULT_ADMIN_ROLE(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addToPublicList(_publisher: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        approveOperator(_operator: string, _toApprove: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        getAllPublicPublishedContracts(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAllPublishedContracts(_publisher: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPublicId(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPublishedContract(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPublishedContractVersions(_publisher: string, _contractId: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleMember(role: BytesLike, index: BigNumberish, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRoleMemberCount(role: BytesLike, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        grantRole(role: BytesLike, account: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        hasRole(role: BytesLike, account: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isApprovedByPublisher(arg0: string, arg1: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isPaused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isTrustedForwarder(forwarder: string, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        multicall(data: BytesLike[], overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        nextPublicId(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        publishContract(_publisher: string, _publishMetadataUri: string, _bytecodeHash: BytesLike, _implementation: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        removeFromPublicList(_publisher: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        renounceRole(role: BytesLike, account: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        revokeRole(role: BytesLike, account: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        setPause(_pause: boolean, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
        supportsInterface(interfaceId: BytesLike, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        unpublishContract(_publisher: string, _contractId: string, overrides?: Overrides & {
            from?: string | Promise<string>;
        }): Promise<PopulatedTransaction>;
    };
}

export { AddedContractToPublicListEvent, AddedContractToPublicListEventFilter, ApprovedEvent, ApprovedEventFilter, ByocRegistry, ByocRegistryInterface, ContractPublishedEvent, ContractPublishedEventFilter, ContractUnpublishedEvent, ContractUnpublishedEventFilter, IByocRegistry, PausedEvent, PausedEventFilter, RemovedContractToPublicListEvent, RemovedContractToPublicListEventFilter, RoleAdminChangedEvent, RoleAdminChangedEventFilter, RoleGrantedEvent, RoleGrantedEventFilter, RoleRevokedEvent, RoleRevokedEventFilter };
