import { DateTimeString } from './opaqueTypes'; import type { IRequestor } from './requestTypes'; export interface IUpdatedOn { updatedOn: DateTimeString; } export interface IUpdatable extends IUpdatedOn { updatedBy: IRequestor; } export interface IDeletable { deletedBy?: IRequestor; deletedOn?: DateTimeString; } export interface ICreatedOn { createdOn: DateTimeString; } export interface ICreatable extends ICreatedOn { createdBy: IRequestor; } export interface IIdentifiable { id: TId; } export type UpdateOf = TCreate & IUpdatedOn & IIdentifiable; export type PartialUpdateOf = Partial & IUpdatedOn & IIdentifiable; export type DtoOf = TCreate & IUpdatable & ICreatable & IIdentifiable; export type ImmutableDtoOf = TCreate & IDeletable & ICreatable & IIdentifiable; export type IdOf = T extends ImmutableDtoOf ? (TId extends string ? TId : never) : never; //# sourceMappingURL=dto.d.ts.map