import * as IShared from '../../../shared/interface'; import { Country } from '../../../shared/entities/user'; export type Entity = Country; export declare const Route = "country"; export declare const UpperName = "Country"; export declare const LowerName: string; type IFindDetailedResponse = Entity; export type IFindByIdResponse = Omit; export type IFindRequest = { name?: string; }; export type IFindResponse = Omit; export interface IFindPaginatedRequest extends IFindRequest, IShared.IPaginationRequest { } export type IFindWithPaginationResponse = IShared.IPaginationResponse>; export interface ICreateRequest { name: string; alpha2: string; external_id: string; } export interface IUpdateRequest { name?: string; alpha2?: string; external_id?: string; } export interface IRepository { findById(selector: IShared.IFindByIdRequest): Promise; findMinified(params?: IShared.IFindMinifiedRequest): Promise; findByAlpha2(params?: IShared.IFindMinifiedRequest): Promise; find(selector: IFindRequest): Promise; findPaginated(selector: IFindPaginatedRequest): Promise; create(data: ICreateRequest): Promise; update(selector: IShared.IFindByIdRequest, data: IUpdateRequest): Promise; deleteOne(selector: IShared.IFindByIdRequest): Promise; } export type IController = IShared.IEntityWithUserToken; export {};