import { ImageMetaData } from "@aurigma/design-atoms-model/Product/Items/ImageMetaData";
import { RectangleF, Path } from "@aurigma/design-atoms-model/Math";
import { Color, RgbColor } from "@aurigma/design-atoms-model/Colors";
import { EventWithSenderArg } from "@aurigma/design-atoms-model";
import { IPreviewColorSettings } from "./IPreviewColorSettings";
export interface ILicense {
    isDeveloper: boolean;
    isTrial: boolean;
    isDesktopOnly: boolean;
    isEnterprise: boolean;
    expirationDate: Date;
}
export interface IFallbackFontsResult {
    fonts: string[];
    message: string;
}
export interface IDesignAtomsApiClient {
    setAuthorizationToken(token: string): any;
    getColorPreview(color: Color, colorSettings: IPreviewColorSettings): Promise<RgbColor>;
    getColorPreviews(colors: Color[], colorSettings: IPreviewColorSettings): Promise<RgbColor[]>;
    getFontsCSS(requestedFonts: string[], advancedMode: boolean): Promise<string>;
    getFontsByteArray(psName: string): Promise<Uint8Array>;
    getContentPath(originalPathId: string): Promise<string>;
    getImageMetaDataFromRemoteUrl(remoteUrl: string, appDomainUrl?: string): Promise<ImageMetaData>;
    getImageMetaDataFromFile(filePath: string, userId: string, appDomainUrl?: string): Promise<ImageMetaData>;
    getImageMetaDataFromDesignImage(designImageName: string, appDomainUrl?: string): Promise<ImageMetaData>;
    getImageMetadataFromRemoteFile(url: string, appDomainUrl?: string): Promise<ImageMetaData>;
    getPathBoundsFromServer(path: Path): Promise<RectangleF>;
    sendRequest(methodName: any, data: any, resolve: SuccessFunc, failure: FailureFunc, returnRawResponse?: boolean): void;
    getLicenseAsync(): Promise<ILicense>;
    getFallbackFonts(): Promise<IFallbackFontsResult>;
    loadingImageUrl: string;
    loadingImageUrlChanged: EventWithSenderArg<IDesignAtomsApiClient, any>;
    backendUrl: string;
    serviceEndpoint: string;
}
declare type FailureFunc = (error: any, userContext: any, methodName: any) => any;
declare type SuccessFunc = (data: any, xmlhttprequest?: XMLHttpRequest) => any;
export {};
