import { type IColorPalette, type ITheme, type ObjRef } from "@gooddata/sdk-model";
import { type IDialogBaseProps } from "../typings.js";
import { type TStylingEditorDialogFooterProps } from "./StylingEditorDialogFooter.js";
/**
 * @internal
 */
export type StylingPickerItemContent = ITheme | IColorPalette;
/**
 * @internal
 */
export interface IStylingPickerItem<T extends StylingPickerItemContent> {
    name?: string;
    ref?: ObjRef;
    content: T;
}
/**
 * @internal
 */
export interface IStylingEditorDialogProps<T extends StylingPickerItemContent> extends TStylingEditorDialogFooterProps, Pick<IDialogBaseProps, "onClose" | "className"> {
    title: string;
    tooltip?: string;
    stylingItem?: IStylingPickerItem<T>;
    examples?: IStylingPickerItem<T>[];
    exampleToColorPreview?: (example: T) => string[];
    locale?: string;
    onExit?: (name: string, definition: string) => void;
    onInvalidDefinition?: (ref: ObjRef) => void;
    showBackButton?: boolean;
    /**
     * Optional validation of the parsed definition content (e.g. checking theme color values).
     *
     * @remarks
     * Called only when the definition is valid JSON. Return a localized error message to block
     * submission and display it, or undefined when the content is valid.
     */
    validateDefinition?: (content: T) => string | undefined;
}
/**
 * @internal
 */
export declare function StylingEditorDialog<T extends StylingPickerItemContent>(props: IStylingEditorDialogProps<T>): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=StylingEditorDialog.d.ts.map