import type Database from 'better-sqlite3';
import type { BrokenReference, ChangedBy, UiView, UiViewCreateInput, UiViewDeleteResult, UiViewListQuery, UiViewParam, UiViewUpdateInput } from '../../shared/entities.js';
import type { TagsService } from './tags.js';
import type { VersionService } from './versions.js';
export declare class UiViewService {
    private db;
    private tags;
    private versions;
    constructor(db: Database.Database, tags: TagsService, versions: VersionService);
    create(input: UiViewCreateInput, actor: ChangedBy): {
        uiView: UiView;
        warnings: string[];
    };
    list(query?: UiViewListQuery): UiView[];
    getBySlug(slug: string): UiView | null;
    getIdBySlug(slug: string): number | null;
    update(slug: string, input: UiViewUpdateInput, actor: ChangedBy): {
        uiView: UiView;
        previousSlug: string;
        warnings: string[];
    };
    remove(slug: string, actor: ChangedBy, brokenReferences?: BrokenReference[]): UiViewDeleteResult;
    private getByIdInternal;
    private hydrate;
}
export declare function computeWarnings(url: string | null, params: UiViewParam[]): string[];
