import type { PmProjectMember, ProjectRole } from '../../../domain/generated/output.js';
import type { IPmProjectMemberRepository } from '../../ports/output/repositories/pm-project-member-repository.interface.js';
import type { IPmProjectRepository } from '../../ports/output/repositories/pm-project-repository.interface.js';
import type { IPmUserRepository } from '../../ports/output/repositories/pm-user-repository.interface.js';
export interface AddProjectMemberInput {
    projectId: string;
    userId: string;
    role: ProjectRole;
    actorId: string;
}
export type AddProjectMemberResult = {
    ok: true;
    member: PmProjectMember;
} | {
    ok: false;
    error: string;
};
export declare class AddProjectMemberUseCase {
    private readonly memberRepo;
    private readonly projectRepo;
    private readonly userRepo;
    constructor(memberRepo: IPmProjectMemberRepository, projectRepo: IPmProjectRepository, userRepo: IPmUserRepository);
    execute(input: AddProjectMemberInput): Promise<AddProjectMemberResult>;
}
//# sourceMappingURL=add-project-member.use-case.d.ts.map