/**
 * An interface describing a provider of a thing.
 */
export declare interface IProvider {
    /**
     * The data kind. The application ignores the input with an unknown `kind`,
     * unless it can be determined from the context.
     */
    kind: typeof Kind;
    /**
     * The URL to the provider
     */
    url?: string;
    /**
     * The name to the provider
     */
    name?: string;
    /**
     * The email to the provider
     */
    email?: string;
}
export declare const Kind = "Core#Provider";
export declare class Provider {
    kind: string;
    /**
     * The URL to the provider
     */
    url?: string;
    /**
     * The name to the provider
     */
    name?: string;
    /**
     * The email to the provider
     */
    email?: string;
    /**
     * @param input The provider definition used to restore the state.
     */
    constructor(input?: string | IProvider);
    /**
     * Creates a new provider clearing anything that is so far defined.
     *
     * Note, this throws an error when the provider is not a provider object.
     */
    new(init: IProvider): void;
    /**
     * Checks whether the input is a definition of a provider.
     */
    static isProvider(input: unknown): boolean;
    toJSON(): IProvider;
}
//# sourceMappingURL=Provider.d.ts.map