import type { AuthValidator } from '@declaro/auth';
import type { AnyModelSchema } from '@declaro/core';
import type { ILoadOptions, ReadOnlyModelService } from '../domain/services/read-only-model-service';
import type { InferDetail, InferFilters, InferLookup, InferSearchResults } from '../shared/utils/schema-inference';
export declare class ReadOnlyModelController<TSchema extends AnyModelSchema> {
    protected readonly service: ReadOnlyModelService<TSchema>;
    protected readonly authValidator: AuthValidator;
    constructor(service: ReadOnlyModelService<TSchema>, authValidator: AuthValidator);
    load(lookup: InferLookup<TSchema>, options?: ILoadOptions): Promise<InferDetail<TSchema>>;
    loadMany(lookups: InferLookup<TSchema>[], options?: ILoadOptions): Promise<InferDetail<TSchema>[]>;
    search(input: InferFilters<TSchema>, options?: ILoadOptions): Promise<InferSearchResults<TSchema>>;
}
//# sourceMappingURL=read-only-model-controller.d.ts.map