export type JsonPrimitive = string | number | boolean | null;
export type JsonifiableObject = {
    [_ in string]?: Jsonifiable;
} | ToJSON;
export type JsonifiableArray = Jsonifiable[];
export type Jsonifiable = JsonPrimitive | JsonifiableObject | JsonifiableArray;
export interface ToJSON {
    readonly toJSON: () => Jsonifiable;
}
export interface ToSurql {
    readonly toSurql: () => string;
}
export interface ToPlainObject {
    readonly toPlainObject: () => Record<string, unknown>;
}
export interface Clone {
    readonly clone: () => any;
}
export declare function canToJSON(value: unknown): value is ToJSON;
export declare function canToSurql(value: unknown): value is ToSurql;
export declare function canToPlainObject(value: unknown): value is ToPlainObject;
export declare function canClone(value: unknown): value is Clone;
//# sourceMappingURL=traits.d.ts.map