import type { Filter } from '../../../../../providers/database/pagination/types.js';
import type { PaginationParams } from '../../../../../providers/database/pagination/schemas.js';
import type { EntityRelationDtoSchema } from '../../../../../plugins/catalog-entities/schemas/dto-schemas.js';
import type { DatabaseInitializationResult, RepositoryInstanceOptions } from '../../../../../providers/database/types.js';
import type { CatalogFiltersParams } from './catalog-entities-local-read-repository.js';
import { type CreateEntityParams } from './catalog-entities-local-write-repository.js';
import { BaseRepository } from '../../../../../providers/database/base-repository.js';
export declare class CatalogEntitiesLocalRepository extends BaseRepository {
    #private;
    constructor(initializationResult: DatabaseInitializationResult);
    get transactionsManager(): import("../../../../../providers/database/transactions-manager.js").TransactionsManager;
    getEntitySources(): Record<string, string>;
    static getInstance(options: RepositoryInstanceOptions): Promise<CatalogEntitiesLocalRepository>;
    attachDatabase(databasePath: string): Promise<void>;
    getEntities(paginationParams?: PaginationParams): Promise<import("./catalog-entities-local-read-repository.js").ListResult<import("../../../schemas/read-model-schemas.js").EntityReadModelSchema>>;
    getEntityByKey(key: string): Promise<import("../../../schemas/read-model-schemas.js").EntityReadModelSchema | null>;
    getEntitiesRelations(paginationParams?: PaginationParams): Promise<import("./catalog-entities-local-read-repository.js").ListResult<{
        createdAt?: string | null | undefined;
        updatedAt?: string | null | undefined;
        type: string;
        id: string;
        organizationId: string;
        projectId: string;
        sourceKey: string;
        targetKey: string;
        sourceId: string;
        targetId: string;
    }>>;
    getEntityRelationById(id: string): Promise<{
        createdAt?: string | null | undefined;
        updatedAt?: string | null | undefined;
        type: string;
        id: string;
        organizationId: string;
        projectId: string;
        sourceKey: string;
        targetKey: string;
        sourceId: string;
        targetId: string;
    } | null>;
    getEntitiesWithRelations(paginationParams?: PaginationParams): Promise<import("./catalog-entities-local-read-repository.js").ListResult<import("@redocly/theme").BffCatalogEntity>>;
    getEntityWithRelationsByKey(entityKey: string): Promise<import("@redocly/theme").BffCatalogEntity | null>;
    getRelatedEntities(entityKey: string, paginationParams?: PaginationParams): Promise<import("./catalog-entities-local-read-repository.js").ListResult<import("@redocly/theme").BffCatalogRelatedEntity>>;
    createEntity(createEntityParams: CreateEntityParams): Promise<void>;
    createEntities(createEntitiesParams: CreateEntityParams[]): Promise<void>;
    createEntityRelation(entityRelation: EntityRelationDtoSchema): Promise<{
        id: string;
        createdAt: string;
        organizationId: string;
        projectId: string;
        sourceKey: string;
        targetKey: string;
        sourceId: string | null;
        targetId: string | null;
        updatedAt: string;
        sourceFile: string | null;
        fileHash: string | null;
        schemaVersion: number;
        sourceToTargetRelation: string;
        targetToSourceRelation: string;
    } | null>;
    createEntityRelations(relations: EntityRelationDtoSchema[]): Promise<void>;
    deleteEntity(entityKey: string): Promise<string | null>;
    deleteEntities(filter: Filter): Promise<boolean>;
    deleteEntityRelation(id: string): Promise<string | null>;
    deleteEntityRelations(filter: Filter): Promise<boolean>;
    getCatalogFilters(params: CatalogFiltersParams): Promise<Record<string, import("./catalog-entities-local-read-repository.js").FilterOption[]>>;
}
//# sourceMappingURL=catalog-entities-local-repository.d.ts.map