export declare type Constructor<T> = {
    new (...args: any[]): T;
};
export declare type Message<P extends unknown> = Text | ((...params: P[]) => Text);
export declare const toMessage: <P>(g: Message<P>, ...params: P[]) => string;
export declare type Validatable = {
    isValid: boolean;
};
export declare type Result = {
    domain?: string;
    location?: string;
    message: string;
};
export declare type Results = Validatable & {
    results: Result[];
};
export declare type Uri = Text;
export declare type Id = string | number;
export declare type JsonValue = string | number | boolean | null | Json | JsonValue[];
export declare type Json = {
    [key: string]: JsonValue;
};
export declare type Exception = {
    id: Id;
    reason?: string;
};
export declare type Text = {
    toString: () => string;
};
export declare type Query = Text;
export declare type UseCase = {
    app: {
        id: Text;
    };
    id: Text;
};
export declare type Tester = {
    url: string;
};
