import type { ThemeModel } from "@genexus/chameleon-controls-library";
import type { MercuryBundleFull, MercuryBundleMapping, MercuryBundleOptimized } from "./types.js";
/**
 * Given the basePath, returns all bundles (except base and icons) in the
 * format of type `ThemeModel`.
 *
 * This is useful for defining the following in an `index.html`:
 *
 * ```tsx
 * const THEME_BUNDLES = getThemeBundles("<base path>");
 *
 * HTML/render/template:
 *   <body>
 *     <ch-theme model={THEME_BUNDLES}></ch-theme>
 *     ...
 *   </body>
 * ```
 */
export declare const getThemeBundles: (basePath: string, bundleNamePrefix?: string) => [{
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}, {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet?: undefined;
} | {
    readonly name: string;
    readonly url: string;
    readonly attachStyleSheet: boolean;
}];
/**
 * Given the bundles array and the basePath or options (optional), returns the
 * given bundles in the format of type `ThemeModel`.
 *
 * This is useful for loading the themes in a component. Example:
 *
 * ```tsx
 * const CSS_BUNDLES: ThemeModel = getBundles(
 *   [
 *     "components/accordion",
 *     "components/button",
 *     "components/checkbox",
 *     "components/combo-box",
 *     "components/edit",
 *     "components/tree-view",
 *     "utils/form",
 *     "utils/layout",
 *   ],
 *   "/assets/css/" or { basePath: "/assets/css/", bundleNamePrefix: ..., bundleMappings: ... }, (optional)
 * );
 *
 * HTML/render/template:
 *   <Host>
 *     <ch-theme model={CSS_BUNDLES}></ch-theme>
 *     ...
 *   </Host>
 * ```
 */
export declare const getBundles: (bundles: MercuryBundleOptimized[] | MercuryBundleFull[], optionsOrBasePath?: string | {
    basePath?: string;
    bundleNamePrefix?: string;
    bundleMappings?: MercuryBundleMapping;
}) => ThemeModel;
/**
 * Establish the mapping between the bundle name and its generated hash.
 *
 * If the bundles are created with the CLI that provides Mercury
 * (`mercury` command), this mapping must be set to download the right bundles
 * with the ch-theme component.
 *
 * After that, the `getBundles` utility can be used.
 */
export declare const setBundleMapping: (mappings: MercuryBundleMapping) => void;
