export type Optional<T> = T | undefined;
export type Nullable<T> = T | null;
export type DeepPartial<T> = {
    [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
};
export type Operation = "read" | "write" | "create" | "delete" | "update";
export interface IResult<T> {
    success: boolean;
    data?: T;
    error?: string;
}
export interface IMetadata {
    createdAt: string;
    updatedAt: string;
    version: string;
}
