import type { Label } from '../../../domain/generated/output.js';
import type { ILabelRepository } from '../../ports/output/repositories/label-repository.interface.js';
export interface CreateLabelInput {
    projectId: string;
    name: string;
    color: string;
    parentId?: string;
}
export type ManageLabelResult = {
    ok: true;
    label?: Label;
    labels?: Label[];
} | {
    ok: false;
    error: string;
};
export declare class ManageLabelsUseCase {
    private readonly labelRepo;
    constructor(labelRepo: ILabelRepository);
    list(projectId: string): Promise<Label[]>;
    create(input: CreateLabelInput): Promise<ManageLabelResult>;
    update(labelId: string, fields: Partial<Pick<Label, 'name' | 'color' | 'parentId'>>): Promise<ManageLabelResult>;
    delete(labelId: string): Promise<ManageLabelResult>;
}
//# sourceMappingURL=manage-labels.use-case.d.ts.map