import type { ISODate } from "../../../common/CustomTypes/ISODate";
import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString";
/**
 * Feedback provided by a user
 */
export interface UserFeedback {
    rating: Rating;
    message?: string;
}
export declare type Rating = 1 | 2 | 3 | 4 | 5;
export interface FeedbackMetadata {
    source: Source;
}
export interface FeedbackRequest extends UserFeedback, FeedbackMetadata {
}
/**
 * Feedback that is stored in the server
 */
export interface Feedback extends FeedbackRequest {
    id: NonEmptyString;
    creationDate: ISODate;
    isRead: boolean;
    reporter: string;
}
export declare type Source = 'other' | 'vscode' | 'web-console-designer' | 'web-console';
export declare const isRating: import("@altostra/type-validations").TypeValidation<Rating>;
export declare const isSource: import("@altostra/type-validations").TypeValidation<Source>;
export declare const isUserFeedback: import("@altostra/type-validations").ObjectOfTypeValidation<UserFeedback>;
export declare const isFeedbackRequest: import("@altostra/type-validations").ObjectOfTypeValidation<FeedbackRequest>;
export declare const isFeedback: import("@altostra/type-validations").ObjectOfTypeValidation<Feedback>;
