import type { IAccessPattern as IEntityAccessPattern } from '../../../entity/actions/accessPattern/index.js';
import type { Entity } from '../../../entity/index.js';
import type { IAccessPattern as ITableAccessPattern } from '../../../table/actions/accessPattern/index.js';
import type { Table } from '../../../table/index.js';
import { TableAction } from '../../../table/index.js';
export declare class Registry
= Record> extends TableAction {
static actionName: "registry";
readonly entities: RegistryEntities;
readonly accessPatterns: ACCESS_PATTERNS;
readonly query: RegistryQueries;
constructor(table: TABLE, _entities?: ENTITIES, accessPatterns?: ACCESS_PATTERNS, { entities, query }?: {
entities?: RegistryEntities;
query?: RegistryQueries;
});
registerEntities(...nextEntities: NEXT_ENTITIES): Registry;
registerAccessPatterns>(nextAccessPatterns: NEXT_ACCESS_PATTERNS): Registry;
build = TableAction>(Action: new (table: TABLE, entities?: ENTITIES) => ACTION): ACTION;
}
type RegistryQueries> = {
[KEY in keyof ACCESS_PATTERNS]: ACCESS_PATTERNS[KEY]['query'];
};
type RegistryEntities = {
[ENTITY in ENTITIES[number] as ENTITY['entityName']]: ENTITY;
};
export {};