import type { BaseContract, BigNumber, BigNumberish, Signer, utils } from "ethers";
import type { EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "../../../common";
export interface EventsInterface extends utils.Interface {
    functions: {};
    events: {
        "CertificateIssued(address,uint256,uint256)": EventFragment;
        "EnergyGiven(uint256,uint256,uint256)": EventFragment;
        "EnergyRemoved(uint256,uint256,uint256)": EventFragment;
        "ExperienceWithdrawn(address,uint256,uint256)": EventFragment;
        "OrganizationJoined(address,uint256)": EventFragment;
        "OrganizationLeft(address,uint256)": EventFragment;
        "OrganizationRegistered(address)": EventFragment;
        "PendingMemberApproved(address,uint256)": EventFragment;
        "PendingMemberRejected(address,uint256)": EventFragment;
        "ProfileCreated(uint256,address)": EventFragment;
        "ProjectCreated(address,uint256)": EventFragment;
        "ProjectMemberAdded(address,uint256,uint256)": EventFragment;
        "ProjectMemberRemoved(address,uint256,uint256)": EventFragment;
        "ProjectUpdated(address,uint256)": EventFragment;
        "SkillCreated(uint256)": EventFragment;
        "TaskCreated(address,uint256,uint256)": EventFragment;
        "TaskMemberAdded(address,uint256,uint256)": EventFragment;
        "TaskMemberRemoved(address,uint256,uint256)": EventFragment;
        "TaskUpdated(address,uint256)": EventFragment;
        "TimeLogged(uint256,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "CertificateIssued"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "EnergyGiven"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "EnergyRemoved"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ExperienceWithdrawn"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OrganizationJoined"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OrganizationLeft"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OrganizationRegistered"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PendingMemberApproved"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "PendingMemberRejected"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ProfileCreated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ProjectCreated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ProjectMemberAdded"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ProjectMemberRemoved"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "ProjectUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SkillCreated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TaskCreated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TaskMemberAdded"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TaskMemberRemoved"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TaskUpdated"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "TimeLogged"): EventFragment;
}
export interface CertificateIssuedEventObject {
    from: string;
    profileId: BigNumber;
    certificateId: BigNumber;
}
export type CertificateIssuedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], CertificateIssuedEventObject>;
export type CertificateIssuedEventFilter = TypedEventFilter<CertificateIssuedEvent>;
export interface EnergyGivenEventObject {
    fromProfileId: BigNumber;
    toProfileId: BigNumber;
    amount: BigNumber;
}
export type EnergyGivenEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber
], EnergyGivenEventObject>;
export type EnergyGivenEventFilter = TypedEventFilter<EnergyGivenEvent>;
export interface EnergyRemovedEventObject {
    fromProfileId: BigNumber;
    toProfileId: BigNumber;
    amount: BigNumber;
}
export type EnergyRemovedEvent = TypedEvent<[
    BigNumber,
    BigNumber,
    BigNumber
], EnergyRemovedEventObject>;
export type EnergyRemovedEventFilter = TypedEventFilter<EnergyRemovedEvent>;
export interface ExperienceWithdrawnEventObject {
    organization: string;
    taskId: BigNumber;
    profileId: BigNumber;
}
export type ExperienceWithdrawnEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], ExperienceWithdrawnEventObject>;
export type ExperienceWithdrawnEventFilter = TypedEventFilter<ExperienceWithdrawnEvent>;
export interface OrganizationJoinedEventObject {
    organization: string;
    profileId: BigNumber;
}
export type OrganizationJoinedEvent = TypedEvent<[
    string,
    BigNumber
], OrganizationJoinedEventObject>;
export type OrganizationJoinedEventFilter = TypedEventFilter<OrganizationJoinedEvent>;
export interface OrganizationLeftEventObject {
    organization: string;
    profileId: BigNumber;
}
export type OrganizationLeftEvent = TypedEvent<[
    string,
    BigNumber
], OrganizationLeftEventObject>;
export type OrganizationLeftEventFilter = TypedEventFilter<OrganizationLeftEvent>;
export interface OrganizationRegisteredEventObject {
    organization: string;
}
export type OrganizationRegisteredEvent = TypedEvent<[
    string
], OrganizationRegisteredEventObject>;
export type OrganizationRegisteredEventFilter = TypedEventFilter<OrganizationRegisteredEvent>;
export interface PendingMemberApprovedEventObject {
    organization: string;
    profileId: BigNumber;
}
export type PendingMemberApprovedEvent = TypedEvent<[
    string,
    BigNumber
], PendingMemberApprovedEventObject>;
export type PendingMemberApprovedEventFilter = TypedEventFilter<PendingMemberApprovedEvent>;
export interface PendingMemberRejectedEventObject {
    organization: string;
    profileId: BigNumber;
}
export type PendingMemberRejectedEvent = TypedEvent<[
    string,
    BigNumber
], PendingMemberRejectedEventObject>;
export type PendingMemberRejectedEventFilter = TypedEventFilter<PendingMemberRejectedEvent>;
export interface ProfileCreatedEventObject {
    profileId: BigNumber;
    owner: string;
}
export type ProfileCreatedEvent = TypedEvent<[
    BigNumber,
    string
], ProfileCreatedEventObject>;
export type ProfileCreatedEventFilter = TypedEventFilter<ProfileCreatedEvent>;
export interface ProjectCreatedEventObject {
    organization: string;
    projectId: BigNumber;
}
export type ProjectCreatedEvent = TypedEvent<[
    string,
    BigNumber
], ProjectCreatedEventObject>;
export type ProjectCreatedEventFilter = TypedEventFilter<ProjectCreatedEvent>;
export interface ProjectMemberAddedEventObject {
    organization: string;
    projectId: BigNumber;
    profileId: BigNumber;
}
export type ProjectMemberAddedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], ProjectMemberAddedEventObject>;
export type ProjectMemberAddedEventFilter = TypedEventFilter<ProjectMemberAddedEvent>;
export interface ProjectMemberRemovedEventObject {
    organization: string;
    projectId: BigNumber;
    profileId: BigNumber;
}
export type ProjectMemberRemovedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], ProjectMemberRemovedEventObject>;
export type ProjectMemberRemovedEventFilter = TypedEventFilter<ProjectMemberRemovedEvent>;
export interface ProjectUpdatedEventObject {
    organization: string;
    projectId: BigNumber;
}
export type ProjectUpdatedEvent = TypedEvent<[
    string,
    BigNumber
], ProjectUpdatedEventObject>;
export type ProjectUpdatedEventFilter = TypedEventFilter<ProjectUpdatedEvent>;
export interface SkillCreatedEventObject {
    skillId: BigNumber;
}
export type SkillCreatedEvent = TypedEvent<[
    BigNumber
], SkillCreatedEventObject>;
export type SkillCreatedEventFilter = TypedEventFilter<SkillCreatedEvent>;
export interface TaskCreatedEventObject {
    organization: string;
    projectId: BigNumber;
    taskId: BigNumber;
}
export type TaskCreatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], TaskCreatedEventObject>;
export type TaskCreatedEventFilter = TypedEventFilter<TaskCreatedEvent>;
export interface TaskMemberAddedEventObject {
    organization: string;
    taskId: BigNumber;
    profileId: BigNumber;
}
export type TaskMemberAddedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], TaskMemberAddedEventObject>;
export type TaskMemberAddedEventFilter = TypedEventFilter<TaskMemberAddedEvent>;
export interface TaskMemberRemovedEventObject {
    organization: string;
    taskId: BigNumber;
    profileId: BigNumber;
}
export type TaskMemberRemovedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], TaskMemberRemovedEventObject>;
export type TaskMemberRemovedEventFilter = TypedEventFilter<TaskMemberRemovedEvent>;
export interface TaskUpdatedEventObject {
    organization: string;
    taskId: BigNumber;
}
export type TaskUpdatedEvent = TypedEvent<[
    string,
    BigNumber
], TaskUpdatedEventObject>;
export type TaskUpdatedEventFilter = TypedEventFilter<TaskUpdatedEvent>;
export interface TimeLoggedEventObject {
    profileId: BigNumber;
    time: BigNumber;
}
export type TimeLoggedEvent = TypedEvent<[
    BigNumber,
    BigNumber
], TimeLoggedEventObject>;
export type TimeLoggedEventFilter = TypedEventFilter<TimeLoggedEvent>;
export interface Events extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: EventsInterface;
    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: {};
    callStatic: {};
    filters: {
        "CertificateIssued(address,uint256,uint256)"(from?: null, profileId?: PromiseOrValue<BigNumberish> | null, certificateId?: PromiseOrValue<BigNumberish> | null): CertificateIssuedEventFilter;
        CertificateIssued(from?: null, profileId?: PromiseOrValue<BigNumberish> | null, certificateId?: PromiseOrValue<BigNumberish> | null): CertificateIssuedEventFilter;
        "EnergyGiven(uint256,uint256,uint256)"(fromProfileId?: PromiseOrValue<BigNumberish> | null, toProfileId?: PromiseOrValue<BigNumberish> | null, amount?: null): EnergyGivenEventFilter;
        EnergyGiven(fromProfileId?: PromiseOrValue<BigNumberish> | null, toProfileId?: PromiseOrValue<BigNumberish> | null, amount?: null): EnergyGivenEventFilter;
        "EnergyRemoved(uint256,uint256,uint256)"(fromProfileId?: PromiseOrValue<BigNumberish> | null, toProfileId?: PromiseOrValue<BigNumberish> | null, amount?: null): EnergyRemovedEventFilter;
        EnergyRemoved(fromProfileId?: PromiseOrValue<BigNumberish> | null, toProfileId?: PromiseOrValue<BigNumberish> | null, amount?: null): EnergyRemovedEventFilter;
        "ExperienceWithdrawn(address,uint256,uint256)"(organization?: PromiseOrValue<string> | null, taskId?: PromiseOrValue<BigNumberish> | null, profileId?: PromiseOrValue<BigNumberish> | null): ExperienceWithdrawnEventFilter;
        ExperienceWithdrawn(organization?: PromiseOrValue<string> | null, taskId?: PromiseOrValue<BigNumberish> | null, profileId?: PromiseOrValue<BigNumberish> | null): ExperienceWithdrawnEventFilter;
        "OrganizationJoined(address,uint256)"(organization?: PromiseOrValue<string> | null, profileId?: PromiseOrValue<BigNumberish> | null): OrganizationJoinedEventFilter;
        OrganizationJoined(organization?: PromiseOrValue<string> | null, profileId?: PromiseOrValue<BigNumberish> | null): OrganizationJoinedEventFilter;
        "OrganizationLeft(address,uint256)"(organization?: PromiseOrValue<string> | null, profileId?: PromiseOrValue<BigNumberish> | null): OrganizationLeftEventFilter;
        OrganizationLeft(organization?: PromiseOrValue<string> | null, profileId?: PromiseOrValue<BigNumberish> | null): OrganizationLeftEventFilter;
        "OrganizationRegistered(address)"(organization?: PromiseOrValue<string> | null): OrganizationRegisteredEventFilter;
        OrganizationRegistered(organization?: PromiseOrValue<string> | null): OrganizationRegisteredEventFilter;
        "PendingMemberApproved(address,uint256)"(organization?: PromiseOrValue<string> | null, profileId?: PromiseOrValue<BigNumberish> | null): PendingMemberApprovedEventFilter;
        PendingMemberApproved(organization?: PromiseOrValue<string> | null, profileId?: PromiseOrValue<BigNumberish> | null): PendingMemberApprovedEventFilter;
        "PendingMemberRejected(address,uint256)"(organization?: PromiseOrValue<string> | null, profileId?: PromiseOrValue<BigNumberish> | null): PendingMemberRejectedEventFilter;
        PendingMemberRejected(organization?: PromiseOrValue<string> | null, profileId?: PromiseOrValue<BigNumberish> | null): PendingMemberRejectedEventFilter;
        "ProfileCreated(uint256,address)"(profileId?: PromiseOrValue<BigNumberish> | null, owner?: PromiseOrValue<string> | null): ProfileCreatedEventFilter;
        ProfileCreated(profileId?: PromiseOrValue<BigNumberish> | null, owner?: PromiseOrValue<string> | null): ProfileCreatedEventFilter;
        "ProjectCreated(address,uint256)"(organization?: PromiseOrValue<string> | null, projectId?: PromiseOrValue<BigNumberish> | null): ProjectCreatedEventFilter;
        ProjectCreated(organization?: PromiseOrValue<string> | null, projectId?: PromiseOrValue<BigNumberish> | null): ProjectCreatedEventFilter;
        "ProjectMemberAdded(address,uint256,uint256)"(organization?: PromiseOrValue<string> | null, projectId?: PromiseOrValue<BigNumberish> | null, profileId?: PromiseOrValue<BigNumberish> | null): ProjectMemberAddedEventFilter;
        ProjectMemberAdded(organization?: PromiseOrValue<string> | null, projectId?: PromiseOrValue<BigNumberish> | null, profileId?: PromiseOrValue<BigNumberish> | null): ProjectMemberAddedEventFilter;
        "ProjectMemberRemoved(address,uint256,uint256)"(organization?: PromiseOrValue<string> | null, projectId?: PromiseOrValue<BigNumberish> | null, profileId?: PromiseOrValue<BigNumberish> | null): ProjectMemberRemovedEventFilter;
        ProjectMemberRemoved(organization?: PromiseOrValue<string> | null, projectId?: PromiseOrValue<BigNumberish> | null, profileId?: PromiseOrValue<BigNumberish> | null): ProjectMemberRemovedEventFilter;
        "ProjectUpdated(address,uint256)"(organization?: PromiseOrValue<string> | null, projectId?: PromiseOrValue<BigNumberish> | null): ProjectUpdatedEventFilter;
        ProjectUpdated(organization?: PromiseOrValue<string> | null, projectId?: PromiseOrValue<BigNumberish> | null): ProjectUpdatedEventFilter;
        "SkillCreated(uint256)"(skillId?: PromiseOrValue<BigNumberish> | null): SkillCreatedEventFilter;
        SkillCreated(skillId?: PromiseOrValue<BigNumberish> | null): SkillCreatedEventFilter;
        "TaskCreated(address,uint256,uint256)"(organization?: PromiseOrValue<string> | null, projectId?: PromiseOrValue<BigNumberish> | null, taskId?: PromiseOrValue<BigNumberish> | null): TaskCreatedEventFilter;
        TaskCreated(organization?: PromiseOrValue<string> | null, projectId?: PromiseOrValue<BigNumberish> | null, taskId?: PromiseOrValue<BigNumberish> | null): TaskCreatedEventFilter;
        "TaskMemberAdded(address,uint256,uint256)"(organization?: PromiseOrValue<string> | null, taskId?: PromiseOrValue<BigNumberish> | null, profileId?: PromiseOrValue<BigNumberish> | null): TaskMemberAddedEventFilter;
        TaskMemberAdded(organization?: PromiseOrValue<string> | null, taskId?: PromiseOrValue<BigNumberish> | null, profileId?: PromiseOrValue<BigNumberish> | null): TaskMemberAddedEventFilter;
        "TaskMemberRemoved(address,uint256,uint256)"(organization?: PromiseOrValue<string> | null, taskId?: PromiseOrValue<BigNumberish> | null, profileId?: PromiseOrValue<BigNumberish> | null): TaskMemberRemovedEventFilter;
        TaskMemberRemoved(organization?: PromiseOrValue<string> | null, taskId?: PromiseOrValue<BigNumberish> | null, profileId?: PromiseOrValue<BigNumberish> | null): TaskMemberRemovedEventFilter;
        "TaskUpdated(address,uint256)"(organization?: PromiseOrValue<string> | null, taskId?: PromiseOrValue<BigNumberish> | null): TaskUpdatedEventFilter;
        TaskUpdated(organization?: PromiseOrValue<string> | null, taskId?: PromiseOrValue<BigNumberish> | null): TaskUpdatedEventFilter;
        "TimeLogged(uint256,uint256)"(profileId?: PromiseOrValue<BigNumberish> | null, time?: null): TimeLoggedEventFilter;
        TimeLogged(profileId?: PromiseOrValue<BigNumberish> | null, time?: null): TimeLoggedEventFilter;
    };
    estimateGas: {};
    populateTransaction: {};
}
