import type { SavedView } from '../../../domain/generated/output.js';
import type { ISavedViewRepository } from '../../ports/output/repositories/saved-view-repository.interface.js';
export interface CreateSavedViewInput {
    projectId: string;
    name: string;
    description?: string;
    isPublic?: boolean;
    layout: string;
    configuration: string;
    createdBy?: string;
}
export type ManageSavedViewResult = {
    ok: true;
    view?: SavedView;
    views?: SavedView[];
} | {
    ok: false;
    error: string;
};
export declare class ManageSavedViewsUseCase {
    private readonly viewRepo;
    constructor(viewRepo: ISavedViewRepository);
    list(projectId: string): Promise<SavedView[]>;
    create(input: CreateSavedViewInput): Promise<ManageSavedViewResult>;
    update(viewId: string, fields: Partial<Pick<SavedView, 'name' | 'description' | 'isPublic' | 'layout' | 'configuration'>>): Promise<ManageSavedViewResult>;
    delete(viewId: string): Promise<ManageSavedViewResult>;
}
//# sourceMappingURL=manage-saved-views.use-case.d.ts.map