import type { AbstractEntity } from '../../../models/index.js'; import type { TWhere } from '@venizia/ignis-filter'; import type { TAnyObjectSchema } from '../../common/schema-builders.js'; import type { Env, Schema } from 'hono'; import type { TEntityDataObject, TEntityPersistObject, TRouteContext } from '../../common/index.js'; import { AbstractCrudController } from './abstract.js'; /** Read tier: count / find / findById / findOne. Read-only controllers can extend this directly. */ export declare abstract class ReadableCrudController = AbstractEntity, RouteEnv extends Env = Env, RouteSchema extends Schema = {}, BasePath extends string = '/', ConfigurableOptions extends object = {}, TDataObject extends object = TEntityDataObject, TPersistObject extends object = TEntityPersistObject> extends AbstractCrudController { /** Narrows EVERY read of this controller - override it to scope rows to a tenant, an owner or a status. Public because a generated controller's declaration cannot carry a protected member (TS4094). */ getBaseWhere(_opts: { context: TRouteContext; }): Promise | undefined>; /** GET /count */ count(opts: { context: TRouteContext; }): Promise>; /** GET / - paginated list with a Content-Range header. */ find(opts: { context: TRouteContext; }): Promise>; /** GET /:id */ findById(opts: { context: TRouteContext; }): Promise>; /** GET /find-one */ findOne(opts: { context: TRouteContext; }): Promise>; } //# sourceMappingURL=readable.d.ts.map