/**
 * Types and classes used in tests.
 */
type VariableFieldsOf<T> = Omit<T, 'id' | '__type'>;
export declare class User {
    id: number;
    firstName: string;
    lastName: string;
    handle: string;
    email: string | null;
    constructor(id: number, firstName: string, lastName: string, handle: string, email: string | null);
    static create(id: number, obj: VariableFieldsOf<User>): User;
}
export declare class InsertedUser extends User {
    readonly __type = "InsertedUser";
    static create(id: number, obj: VariableFieldsOf<InsertedUser>): InsertedUser;
}
export declare class SelectedUser extends User {
    readonly __type = "SelectedUser";
    static create(id: number, obj: VariableFieldsOf<SelectedUser>): SelectedUser;
}
export declare class UpdatingUser extends User {
    readonly __type = "UpdatingUser";
    static create(id: number, obj: VariableFieldsOf<UpdatingUser>): UpdatingUser;
}
export declare class ReturnedUser extends User {
    readonly __type = "ReturnedUser";
    static create(id: number, obj: VariableFieldsOf<ReturnedUser>): ReturnedUser;
}
export {};
//# sourceMappingURL=test-types.d.ts.map