import { IGXC } from "@intelligentgraphics/ig.gfx.core";
import { IGXB, IGXE } from "@intelligentgraphics/igd.core";
import { Article } from "./types";
export interface ServiceOptions {
    basePath: string;
    scope?: string;
    password?: string;
}
export interface Hashes {
    visual: string;
    geometric: string;
    pbr?: string;
}
export interface StateFullIGXC extends IGXC.Scene {
    State: {
        GeometricHash: string;
        VisualHash: string;
        PbrHash?: string;
    };
}
export declare type ImageMode = {
    Title: string;
    Description: string;
    Id: string;
};
export declare type RenderAction = {
    action: "mail";
    to: string;
} | {
    action: "add";
    image: string;
    right: number;
    bottom: number;
};
export interface UploadIGXBParams {
    id?: string;
    igxb: IGXB.IGXB_Object;
    secret?: string;
    session?: string;
    url?: string;
}
export interface RenderParams {
    id: string;
    mode: string;
    width: number;
    height: number;
}
export interface ConfigureWithScopeParams {
    articleId: string;
    configuration?: IGXE.IArticleConfiguration;
    hashes?: Hashes;
    scope: string;
    password: string;
}
export declare class Service {
    private options;
    private requester;
    constructor(options: ServiceOptions);
    getProducts(): Promise<Article[]>;
    configure(articleId: string, configuration?: Record<string, string>, previousHashes?: Hashes): Promise<StateFullIGXC>;
    configureWithScope({ articleId, configuration, hashes: previousHashes, scope, password, }: ConfigureWithScopeParams): Promise<any>;
    private createScopeBody;
}
