import * as IShared from '../../../shared/interface'; import { type Commissioner, type Users, type Country, type Language, type PaymentMethods, type DeliveryMethods, type MaturityDates, type Vehicles, type Persona, type ReasonForExemption } from '../../../shared/entities/user'; export type Entity = Commissioner; export declare const Route = "commissioner"; export declare const UpperName = "Commissioner"; export declare const LowerName: string; interface IMainPersona extends Persona { country: Country | null; reason_for_exemption: ReasonForExemption | null; } interface IFindDetailedResponse extends Entity { user: Users; main_persona: IMainPersona; country: Country | null; language: Language | null; default_payment_method: PaymentMethods | null; default_maturity_date: MaturityDates | null; default_delivery_method: DeliveryMethods | null; default_vehicle: Vehicles | null; } export type IFindByIdResponse = Omit; export type IFindByOwnerIdResponse = Omit; export type IFindRequest = Record; export type IFindResponse = Omit; export interface IFindPaginatedRequest extends IFindRequest, IShared.IPaginationRequest { } export type IFindWithPaginationResponse = IShared.IPaginationResponse>; export type ICreateMainPersona = Pick; export interface ICreateRequest { user_id: string; default_percentage?: number; main_persona: ICreateMainPersona; country_id?: string | null; language_id?: string | null; default_payment_method_id?: string | null; default_maturity_date_id?: string | null; default_delivery_method_id?: string | null; default_vehicle_id?: string | null; } export interface IUpdateRequest { default_percentage?: number; main_persona_id?: string; contact_persona_id?: string; country_id?: string | null; language_id?: string | null; default_payment_method_id?: string | null; default_maturity_date_id?: string | null; default_delivery_method_id?: string | null; default_vehicle_id?: string | null; } export interface IRepository { findById(selector: IShared.IFindByIdRequest): Promise; findByOwnerId(params: IShared.IFindByOwnerIdRequest): Promise; findMinified(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 {};