import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
import type { FunctionFragment, Result } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../../common";
export declare namespace DataTypes {
    type CreateProfileStruct = {
        metadataURI: PromiseOrValue<string>;
    };
    type CreateProfileStructOutput = [string] & {
        metadataURI: string;
    };
    type ProfileViewStruct = {
        id: PromiseOrValue<BigNumberish>;
        metadataURI: PromiseOrValue<string>;
    };
    type ProfileViewStructOutput = [BigNumber, string] & {
        id: BigNumber;
        metadataURI: string;
    };
    type UpdateProfileStruct = {
        metadataURI: PromiseOrValue<string>;
    };
    type UpdateProfileStructOutput = [string] & {
        metadataURI: string;
    };
}
export interface IMy3SecHubInterface extends utils.Interface {
    functions: {
        "createOrganization(string)": FunctionFragment;
        "createProfile((string))": FunctionFragment;
        "emitPendingMemberApproved(address,uint256)": FunctionFragment;
        "emitPendingMemberRejected(address,uint256)": FunctionFragment;
        "emitProjectCreated(address,uint256)": FunctionFragment;
        "emitProjectMemberAdded(address,uint256,uint256)": FunctionFragment;
        "emitProjectMemberRemoved(address,uint256,uint256)": FunctionFragment;
        "emitProjectUpdated(address,uint256)": FunctionFragment;
        "emitTaskCreated(address,uint256,uint256)": FunctionFragment;
        "emitTaskMemberAdded(address,uint256,uint256)": FunctionFragment;
        "emitTaskMemberRemoved(address,uint256,uint256)": FunctionFragment;
        "emitTaskUpdated(address,uint256)": FunctionFragment;
        "getDefaultProfile(address)": FunctionFragment;
        "getOrganization(uint256)": FunctionFragment;
        "getOrganizationCount()": FunctionFragment;
        "getProfile(uint256)": FunctionFragment;
        "getProfileAccount(uint256)": FunctionFragment;
        "giveEnergyTo(uint256,uint256)": FunctionFragment;
        "hasWithdrawn(address,uint256,uint256)": FunctionFragment;
        "issueCertificate(uint256,string)": FunctionFragment;
        "issueCertificate(address,uint256,string)": FunctionFragment;
        "joinOrganization(address)": FunctionFragment;
        "leaveOrganization(address)": FunctionFragment;
        "logTime(address,uint256,uint256)": FunctionFragment;
        "registerOrganization(address)": FunctionFragment;
        "removeEnergyFrom(uint256,uint256)": FunctionFragment;
        "setDefaultProfile(uint256)": FunctionFragment;
        "updateProfile(uint256,(string))": FunctionFragment;
        "withdraw(address,uint256)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "createOrganization" | "createProfile" | "emitPendingMemberApproved" | "emitPendingMemberRejected" | "emitProjectCreated" | "emitProjectMemberAdded" | "emitProjectMemberRemoved" | "emitProjectUpdated" | "emitTaskCreated" | "emitTaskMemberAdded" | "emitTaskMemberRemoved" | "emitTaskUpdated" | "getDefaultProfile" | "getOrganization" | "getOrganizationCount" | "getProfile" | "getProfileAccount" | "giveEnergyTo" | "hasWithdrawn" | "issueCertificate(uint256,string)" | "issueCertificate(address,uint256,string)" | "joinOrganization" | "leaveOrganization" | "logTime" | "registerOrganization" | "removeEnergyFrom" | "setDefaultProfile" | "updateProfile" | "withdraw"): FunctionFragment;
    encodeFunctionData(functionFragment: "createOrganization", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "createProfile", values: [DataTypes.CreateProfileStruct]): string;
    encodeFunctionData(functionFragment: "emitPendingMemberApproved", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "emitPendingMemberRejected", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "emitProjectCreated", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "emitProjectMemberAdded", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "emitProjectMemberRemoved", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "emitProjectUpdated", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "emitTaskCreated", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "emitTaskMemberAdded", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "emitTaskMemberRemoved", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "emitTaskUpdated", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getDefaultProfile", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "getOrganization", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getOrganizationCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "getProfile", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getProfileAccount", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "giveEnergyTo", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "hasWithdrawn", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "issueCertificate(uint256,string)", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "issueCertificate(address,uint256,string)", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: "joinOrganization", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "leaveOrganization", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "logTime", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "registerOrganization", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "removeEnergyFrom", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setDefaultProfile", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "updateProfile", values: [PromiseOrValue<BigNumberish>, DataTypes.UpdateProfileStruct]): string;
    encodeFunctionData(functionFragment: "withdraw", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: "createOrganization", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createProfile", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emitPendingMemberApproved", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emitPendingMemberRejected", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emitProjectCreated", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emitProjectMemberAdded", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emitProjectMemberRemoved", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emitProjectUpdated", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emitTaskCreated", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emitTaskMemberAdded", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emitTaskMemberRemoved", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "emitTaskUpdated", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getDefaultProfile", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getOrganization", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getOrganizationCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getProfile", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getProfileAccount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "giveEnergyTo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasWithdrawn", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "issueCertificate(uint256,string)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "issueCertificate(address,uint256,string)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "joinOrganization", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "leaveOrganization", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "logTime", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "registerOrganization", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "removeEnergyFrom", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setDefaultProfile", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateProfile", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result;
    events: {};
}
export interface IMy3SecHub extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: IMy3SecHubInterface;
    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: {
        createOrganization(metadataURI: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createProfile(args: DataTypes.CreateProfileStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitPendingMemberApproved(organization: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitPendingMemberRejected(organization: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitProjectCreated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitProjectMemberAdded(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitProjectMemberRemoved(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitProjectUpdated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitTaskCreated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitTaskMemberAdded(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitTaskMemberRemoved(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        emitTaskUpdated(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getDefaultProfile(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[DataTypes.ProfileViewStructOutput]>;
        getOrganization(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        getOrganizationCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        getProfile(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[DataTypes.ProfileViewStructOutput]>;
        getProfileAccount(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        giveEnergyTo(profileId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        hasWithdrawn(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        "issueCertificate(uint256,string)"(profileId: PromiseOrValue<BigNumberish>, uri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        "issueCertificate(address,uint256,string)"(organizationAddress: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, uri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        joinOrganization(organizationAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        leaveOrganization(organizationAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        logTime(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        registerOrganization(organization: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeEnergyFrom(profileId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setDefaultProfile(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateProfile(profileId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateProfileStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdraw(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    createOrganization(metadataURI: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createProfile(args: DataTypes.CreateProfileStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitPendingMemberApproved(organization: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitPendingMemberRejected(organization: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitProjectCreated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitProjectMemberAdded(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitProjectMemberRemoved(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitProjectUpdated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitTaskCreated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitTaskMemberAdded(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitTaskMemberRemoved(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    emitTaskUpdated(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getDefaultProfile(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<DataTypes.ProfileViewStructOutput>;
    getOrganization(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    getOrganizationCount(overrides?: CallOverrides): Promise<BigNumber>;
    getProfile(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<DataTypes.ProfileViewStructOutput>;
    getProfileAccount(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    giveEnergyTo(profileId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    hasWithdrawn(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    "issueCertificate(uint256,string)"(profileId: PromiseOrValue<BigNumberish>, uri: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    "issueCertificate(address,uint256,string)"(organizationAddress: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, uri: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    joinOrganization(organizationAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    leaveOrganization(organizationAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    logTime(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    registerOrganization(organization: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeEnergyFrom(profileId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setDefaultProfile(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateProfile(profileId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateProfileStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdraw(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        createOrganization(metadataURI: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        createProfile(args: DataTypes.CreateProfileStruct, overrides?: CallOverrides): Promise<BigNumber>;
        emitPendingMemberApproved(organization: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emitPendingMemberRejected(organization: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emitProjectCreated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emitProjectMemberAdded(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emitProjectMemberRemoved(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emitProjectUpdated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emitTaskCreated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emitTaskMemberAdded(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emitTaskMemberRemoved(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        emitTaskUpdated(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        getDefaultProfile(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<DataTypes.ProfileViewStructOutput>;
        getOrganization(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        getOrganizationCount(overrides?: CallOverrides): Promise<BigNumber>;
        getProfile(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<DataTypes.ProfileViewStructOutput>;
        getProfileAccount(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        giveEnergyTo(profileId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        hasWithdrawn(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        "issueCertificate(uint256,string)"(profileId: PromiseOrValue<BigNumberish>, uri: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        "issueCertificate(address,uint256,string)"(organizationAddress: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, uri: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        joinOrganization(organizationAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        leaveOrganization(organizationAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        logTime(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        registerOrganization(organization: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        removeEnergyFrom(profileId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setDefaultProfile(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateProfile(profileId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateProfileStruct, overrides?: CallOverrides): Promise<void>;
        withdraw(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {};
    estimateGas: {
        createOrganization(metadataURI: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createProfile(args: DataTypes.CreateProfileStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitPendingMemberApproved(organization: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitPendingMemberRejected(organization: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitProjectCreated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitProjectMemberAdded(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitProjectMemberRemoved(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitProjectUpdated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitTaskCreated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitTaskMemberAdded(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitTaskMemberRemoved(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        emitTaskUpdated(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getDefaultProfile(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getOrganization(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getOrganizationCount(overrides?: CallOverrides): Promise<BigNumber>;
        getProfile(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getProfileAccount(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        giveEnergyTo(profileId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        hasWithdrawn(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        "issueCertificate(uint256,string)"(profileId: PromiseOrValue<BigNumberish>, uri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        "issueCertificate(address,uint256,string)"(organizationAddress: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, uri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        joinOrganization(organizationAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        leaveOrganization(organizationAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        logTime(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        registerOrganization(organization: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeEnergyFrom(profileId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setDefaultProfile(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateProfile(profileId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateProfileStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdraw(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        createOrganization(metadataURI: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createProfile(args: DataTypes.CreateProfileStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitPendingMemberApproved(organization: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitPendingMemberRejected(organization: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitProjectCreated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitProjectMemberAdded(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitProjectMemberRemoved(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitProjectUpdated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitTaskCreated(organization: PromiseOrValue<string>, projectId: PromiseOrValue<BigNumberish>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitTaskMemberAdded(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitTaskMemberRemoved(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        emitTaskUpdated(organization: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getDefaultProfile(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getOrganization(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getOrganizationCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getProfile(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getProfileAccount(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        giveEnergyTo(profileId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        hasWithdrawn(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        "issueCertificate(uint256,string)"(profileId: PromiseOrValue<BigNumberish>, uri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        "issueCertificate(address,uint256,string)"(organizationAddress: PromiseOrValue<string>, profileId: PromiseOrValue<BigNumberish>, uri: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        joinOrganization(organizationAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        leaveOrganization(organizationAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        logTime(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        registerOrganization(organization: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeEnergyFrom(profileId: PromiseOrValue<BigNumberish>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setDefaultProfile(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateProfile(profileId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateProfileStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdraw(organizationAddress: PromiseOrValue<string>, taskId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
