// Package: com.lightningkite.ktordb
// Generated by Khrysalis - this file will be overwritten.
import { Comparable, TProperty1 } from '@lightningkite/khrysalis-runtime'

//! Declares com.lightningkite.ktordb.HasId
export interface HasId<ID extends Comparable<ID>> {
    
    readonly _id: ID;
    
}


//! Declares com.lightningkite.ktordb.HasIdFields
export class HasIdFields {
    private constructor() {
    }
    public static INSTANCE = new HasIdFields();
    
    _id<T extends HasId<ID>, ID extends Comparable<ID>>(): TProperty1<T, ID> {
        return "_id" as TProperty1<T, ID>;
    }
}

//! Declares com.lightningkite.ktordb.HasEmail
export interface HasEmail {
    
    readonly email: string;
    
}


//! Declares com.lightningkite.ktordb.HasEmailFields
export class HasEmailFields {
    private constructor() {
    }
    public static INSTANCE = new HasEmailFields();
    
    email<T extends HasEmail>(): TProperty1<T, string> {
        return "email" as TProperty1<T, string>;
    }
}
