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 CreateProjectStruct = {
        metadataURI: PromiseOrValue<string>;
    };
    type CreateProjectStructOutput = [string] & {
        metadataURI: string;
    };
    type CreateTaskStruct = {
        metadataURI: PromiseOrValue<string>;
        skills: PromiseOrValue<BigNumberish>[];
    };
    type CreateTaskStructOutput = [string, BigNumber[]] & {
        metadataURI: string;
        skills: BigNumber[];
    };
    type ProjectViewStruct = {
        id: PromiseOrValue<BigNumberish>;
        metadataURI: PromiseOrValue<string>;
        status: PromiseOrValue<BigNumberish>;
        taskCount: PromiseOrValue<BigNumberish>;
    };
    type ProjectViewStructOutput = [
        BigNumber,
        string,
        number,
        BigNumber
    ] & {
        id: BigNumber;
        metadataURI: string;
        status: number;
        taskCount: BigNumber;
    };
    type TaskViewStruct = {
        id: PromiseOrValue<BigNumberish>;
        metadataURI: PromiseOrValue<string>;
        status: PromiseOrValue<BigNumberish>;
        skills: PromiseOrValue<BigNumberish>[];
    };
    type TaskViewStructOutput = [
        BigNumber,
        string,
        number,
        BigNumber[]
    ] & {
        id: BigNumber;
        metadataURI: string;
        status: number;
        skills: BigNumber[];
    };
    type UpdateProjectStruct = {
        metadataURI: PromiseOrValue<string>;
        status: PromiseOrValue<BigNumberish>;
    };
    type UpdateProjectStructOutput = [string, number] & {
        metadataURI: string;
        status: number;
    };
    type UpdateTaskStruct = {
        metadataURI: PromiseOrValue<string>;
        status: PromiseOrValue<BigNumberish>;
        skills: PromiseOrValue<BigNumberish>[];
    };
    type UpdateTaskStructOutput = [string, number, BigNumber[]] & {
        metadataURI: string;
        status: number;
        skills: BigNumber[];
    };
}
export interface IOrganizationInterface extends utils.Interface {
    functions: {
        "addProjectMember(uint256,uint256)": FunctionFragment;
        "addTaskMember(uint256,uint256)": FunctionFragment;
        "addToWhitelist(address)": FunctionFragment;
        "approvePendingMember(uint256)": FunctionFragment;
        "createProject((string))": FunctionFragment;
        "createTask(uint256,(string,uint256[]))": FunctionFragment;
        "getMember(uint256)": FunctionFragment;
        "getMemberCount()": FunctionFragment;
        "getMetadataURI()": FunctionFragment;
        "getPendingMember(uint256)": FunctionFragment;
        "getPendingMemberCount()": FunctionFragment;
        "getProject(uint256)": FunctionFragment;
        "getProjectCount()": FunctionFragment;
        "getProjectMember(uint256,uint256)": FunctionFragment;
        "getProjectMemberCount(uint256)": FunctionFragment;
        "getTask(uint256)": FunctionFragment;
        "getTask(uint256,uint256)": FunctionFragment;
        "getTaskCount(uint256)": FunctionFragment;
        "getTaskLoggedTime(uint256,uint256)": FunctionFragment;
        "getTaskLoggedTimeCount(uint256)": FunctionFragment;
        "getTaskLoggedTimeOfProfile(uint256,uint256)": FunctionFragment;
        "getTaskMember(uint256,uint256)": FunctionFragment;
        "getTaskMemberCount(uint256)": FunctionFragment;
        "getWhitelistCount()": FunctionFragment;
        "getWhitelistMember(uint256)": FunctionFragment;
        "isMember(uint256)": FunctionFragment;
        "isPendingMember(uint256)": FunctionFragment;
        "isProjectMember(uint256,uint256)": FunctionFragment;
        "isTaskMember(uint256,uint256)": FunctionFragment;
        "isWhitelisted(address)": FunctionFragment;
        "join(uint256)": FunctionFragment;
        "leave(uint256)": FunctionFragment;
        "rejectPendingMember(uint256)": FunctionFragment;
        "removeFromWhitelist(address)": FunctionFragment;
        "removeProjectMember(uint256,uint256)": FunctionFragment;
        "removeTaskMember(uint256,uint256)": FunctionFragment;
        "setMetadataURI(string)": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "updateProject(uint256,(string,uint8))": FunctionFragment;
        "updateTask(uint256,(string,uint8,uint256[]))": FunctionFragment;
        "updateTaskTime(uint256,uint256,uint256)": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "addProjectMember" | "addTaskMember" | "addToWhitelist" | "approvePendingMember" | "createProject" | "createTask" | "getMember" | "getMemberCount" | "getMetadataURI" | "getPendingMember" | "getPendingMemberCount" | "getProject" | "getProjectCount" | "getProjectMember" | "getProjectMemberCount" | "getTask(uint256)" | "getTask(uint256,uint256)" | "getTaskCount" | "getTaskLoggedTime" | "getTaskLoggedTimeCount" | "getTaskLoggedTimeOfProfile" | "getTaskMember" | "getTaskMemberCount" | "getWhitelistCount" | "getWhitelistMember" | "isMember" | "isPendingMember" | "isProjectMember" | "isTaskMember" | "isWhitelisted" | "join" | "leave" | "rejectPendingMember" | "removeFromWhitelist" | "removeProjectMember" | "removeTaskMember" | "setMetadataURI" | "transferOwnership" | "updateProject" | "updateTask" | "updateTaskTime"): FunctionFragment;
    encodeFunctionData(functionFragment: "addProjectMember", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "addTaskMember", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "addToWhitelist", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "approvePendingMember", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "createProject", values: [DataTypes.CreateProjectStruct]): string;
    encodeFunctionData(functionFragment: "createTask", values: [PromiseOrValue<BigNumberish>, DataTypes.CreateTaskStruct]): string;
    encodeFunctionData(functionFragment: "getMember", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getMemberCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "getMetadataURI", values?: undefined): string;
    encodeFunctionData(functionFragment: "getPendingMember", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getPendingMemberCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "getProject", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getProjectCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "getProjectMember", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getProjectMemberCount", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getTask(uint256)", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getTask(uint256,uint256)", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getTaskCount", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getTaskLoggedTime", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getTaskLoggedTimeCount", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getTaskLoggedTimeOfProfile", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getTaskMember", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getTaskMemberCount", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getWhitelistCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "getWhitelistMember", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "isMember", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "isPendingMember", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "isProjectMember", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "isTaskMember", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "isWhitelisted", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "join", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "leave", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "rejectPendingMember", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "removeFromWhitelist", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "removeProjectMember", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "removeTaskMember", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setMetadataURI", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "updateProject", values: [PromiseOrValue<BigNumberish>, DataTypes.UpdateProjectStruct]): string;
    encodeFunctionData(functionFragment: "updateTask", values: [PromiseOrValue<BigNumberish>, DataTypes.UpdateTaskStruct]): string;
    encodeFunctionData(functionFragment: "updateTaskTime", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    decodeFunctionResult(functionFragment: "addProjectMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "addTaskMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "addToWhitelist", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "approvePendingMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createProject", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createTask", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getMemberCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getMetadataURI", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPendingMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPendingMemberCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getProject", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getProjectCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getProjectMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getProjectMemberCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTask(uint256)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTask(uint256,uint256)", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTaskCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTaskLoggedTime", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTaskLoggedTimeCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTaskLoggedTimeOfProfile", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTaskMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getTaskMemberCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getWhitelistCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getWhitelistMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isPendingMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isProjectMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isTaskMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isWhitelisted", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "join", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "leave", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rejectPendingMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "removeFromWhitelist", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "removeProjectMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "removeTaskMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMetadataURI", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateProject", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateTask", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateTaskTime", data: BytesLike): Result;
    events: {};
}
export interface IOrganization extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: IOrganizationInterface;
    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: {
        addProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        addToWhitelist(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        approvePendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createProject(args: DataTypes.CreateProjectStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        createTask(projectId: PromiseOrValue<BigNumberish>, args: DataTypes.CreateTaskStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getMemberCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        getMetadataURI(overrides?: CallOverrides): Promise<[string]>;
        getPendingMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getPendingMemberCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        getProject(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[DataTypes.ProjectViewStructOutput]>;
        getProjectCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        getProjectMember(projectId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getProjectMemberCount(projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        "getTask(uint256)"(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[DataTypes.TaskViewStructOutput]>;
        "getTask(uint256,uint256)"(projectId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[DataTypes.TaskViewStructOutput]>;
        getTaskCount(projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getTaskLoggedTime(taskId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        getTaskLoggedTimeCount(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getTaskLoggedTimeOfProfile(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getTaskMember(taskId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getTaskMemberCount(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getWhitelistCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        getWhitelistMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string]>;
        isMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        isPendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        isProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        isTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[boolean]>;
        isWhitelisted(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        join(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        leave(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        rejectPendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeFromWhitelist(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        removeTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMetadataURI(metadataURI: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateProject(projectId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateProjectStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateTask(taskId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateTaskStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateTaskTime(projectId: PromiseOrValue<BigNumberish>, taskId: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    addProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    addToWhitelist(account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    approvePendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createProject(args: DataTypes.CreateProjectStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    createTask(projectId: PromiseOrValue<BigNumberish>, args: DataTypes.CreateTaskStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getMemberCount(overrides?: CallOverrides): Promise<BigNumber>;
    getMetadataURI(overrides?: CallOverrides): Promise<string>;
    getPendingMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getPendingMemberCount(overrides?: CallOverrides): Promise<BigNumber>;
    getProject(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<DataTypes.ProjectViewStructOutput>;
    getProjectCount(overrides?: CallOverrides): Promise<BigNumber>;
    getProjectMember(projectId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getProjectMemberCount(projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    "getTask(uint256)"(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<DataTypes.TaskViewStructOutput>;
    "getTask(uint256,uint256)"(projectId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<DataTypes.TaskViewStructOutput>;
    getTaskCount(projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getTaskLoggedTime(taskId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
    getTaskLoggedTimeCount(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getTaskLoggedTimeOfProfile(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getTaskMember(taskId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getTaskMemberCount(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getWhitelistCount(overrides?: CallOverrides): Promise<BigNumber>;
    getWhitelistMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
    isMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    isPendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    isProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    isTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
    isWhitelisted(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    join(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    leave(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    rejectPendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeFromWhitelist(account: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    removeTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMetadataURI(metadataURI: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateProject(projectId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateProjectStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateTask(taskId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateTaskStruct, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateTaskTime(projectId: PromiseOrValue<BigNumberish>, taskId: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        addProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        addTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        addToWhitelist(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        approvePendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        createProject(args: DataTypes.CreateProjectStruct, overrides?: CallOverrides): Promise<BigNumber>;
        createTask(projectId: PromiseOrValue<BigNumberish>, args: DataTypes.CreateTaskStruct, overrides?: CallOverrides): Promise<BigNumber>;
        getMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getMemberCount(overrides?: CallOverrides): Promise<BigNumber>;
        getMetadataURI(overrides?: CallOverrides): Promise<string>;
        getPendingMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPendingMemberCount(overrides?: CallOverrides): Promise<BigNumber>;
        getProject(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<DataTypes.ProjectViewStructOutput>;
        getProjectCount(overrides?: CallOverrides): Promise<BigNumber>;
        getProjectMember(projectId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getProjectMemberCount(projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        "getTask(uint256)"(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<DataTypes.TaskViewStructOutput>;
        "getTask(uint256,uint256)"(projectId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<DataTypes.TaskViewStructOutput>;
        getTaskCount(projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTaskLoggedTime(taskId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber, BigNumber]>;
        getTaskLoggedTimeCount(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTaskLoggedTimeOfProfile(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTaskMember(taskId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTaskMemberCount(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getWhitelistCount(overrides?: CallOverrides): Promise<BigNumber>;
        getWhitelistMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<string>;
        isMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isPendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<boolean>;
        isWhitelisted(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        join(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        leave(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        rejectPendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        removeFromWhitelist(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        removeProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        removeTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setMetadataURI(metadataURI: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updateProject(projectId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateProjectStruct, overrides?: CallOverrides): Promise<void>;
        updateTask(taskId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateTaskStruct, overrides?: CallOverrides): Promise<void>;
        updateTaskTime(projectId: PromiseOrValue<BigNumberish>, taskId: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {};
    estimateGas: {
        addProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        addToWhitelist(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        approvePendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createProject(args: DataTypes.CreateProjectStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        createTask(projectId: PromiseOrValue<BigNumberish>, args: DataTypes.CreateTaskStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getMemberCount(overrides?: CallOverrides): Promise<BigNumber>;
        getMetadataURI(overrides?: CallOverrides): Promise<BigNumber>;
        getPendingMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPendingMemberCount(overrides?: CallOverrides): Promise<BigNumber>;
        getProject(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getProjectCount(overrides?: CallOverrides): Promise<BigNumber>;
        getProjectMember(projectId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getProjectMemberCount(projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        "getTask(uint256)"(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        "getTask(uint256,uint256)"(projectId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTaskCount(projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTaskLoggedTime(taskId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTaskLoggedTimeCount(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTaskLoggedTimeOfProfile(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTaskMember(taskId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getTaskMemberCount(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getWhitelistCount(overrides?: CallOverrides): Promise<BigNumber>;
        getWhitelistMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        isMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        isPendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        isProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        isTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        isWhitelisted(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        join(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        leave(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        rejectPendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeFromWhitelist(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        removeTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMetadataURI(metadataURI: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateProject(projectId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateProjectStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateTask(taskId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateTaskStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateTaskTime(projectId: PromiseOrValue<BigNumberish>, taskId: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        addProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        addToWhitelist(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        approvePendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createProject(args: DataTypes.CreateProjectStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        createTask(projectId: PromiseOrValue<BigNumberish>, args: DataTypes.CreateTaskStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMemberCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMetadataURI(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPendingMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPendingMemberCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getProject(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getProjectCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getProjectMember(projectId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getProjectMemberCount(projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        "getTask(uint256)"(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        "getTask(uint256,uint256)"(projectId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTaskCount(projectId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTaskLoggedTime(taskId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTaskLoggedTimeCount(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTaskLoggedTimeOfProfile(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTaskMember(taskId: PromiseOrValue<BigNumberish>, index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTaskMemberCount(taskId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getWhitelistCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getWhitelistMember(index: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isPendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isWhitelisted(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        join(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        leave(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        rejectPendingMember(profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeFromWhitelist(account: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeProjectMember(projectId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        removeTaskMember(taskId: PromiseOrValue<BigNumberish>, profileId: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMetadataURI(metadataURI: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateProject(projectId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateProjectStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateTask(taskId: PromiseOrValue<BigNumberish>, args: DataTypes.UpdateTaskStruct, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateTaskTime(projectId: PromiseOrValue<BigNumberish>, taskId: PromiseOrValue<BigNumberish>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
