import type { SetRequired } from '@knapsack/utils';
interface KnapsackAssetSetBase {
    id: string;
    title: string;
    inlineCss?: string;
    inlineJs?: string;
    inlineHead?: string;
    inlineFoot?: string;
}
type KsAssetConfig = {
    src: string;
    /**
     * Force this asset to load in either the head or foot of the HTML page.
     * CSS defaults to head and JS default to foot
     */
    tagLocation?: 'head' | 'foot';
    /**
     * Renderer IDs where this asset will be included in. Look in `knapsack.pattern.*.json` for `templateLanguageId` to see which Renderer is used for a particular template. Examples: `react`, `twig`.
     * @see {excludedRenderers}
     */
    includedRenderers?: string[];
    /**
     * Renderer IDs where this asset will be excluded from. Look in `knapsack.pattern.*.json` for `templateLanguageId` to see which Renderer is used for a particular template. Examples: `react`, `twig`.
     * @see {includedRenderers}
     */
    excludedRenderers?: string[];
    /**
     * Tag Attributes
     * @example
     * {
     *   async: true,
     *   type: 'module'
     * }
     * For JS, would make: `<script async type="module">
     */
    attributes?: {
        [name: string]: string | true;
    };
};
export interface KnapsackAssetSetConfig extends KnapsackAssetSetBase {
    assets: KsAssetConfig[];
}
export type KsAssetData = KsAssetConfig & SetRequired<KsAssetConfig, 'tagLocation'> & {
    publicPath: string;
    type: 'css' | 'js';
};
export interface KnapsackAssetSetData extends KnapsackAssetSetBase {
    assets: KsAssetData[];
}
export type KnapsackAssetSet = KnapsackAssetSetData;
export type KnapsackAssetSetsConfig = {
    $schema?: string;
    globalAssetSetIds?: string[];
    allAssetSets?: {
        [id: string]: KnapsackAssetSetConfig;
    };
};
export interface KnapsackAssetSetsData {
    globalAssetSetIds?: string[];
    allAssetSets?: {
        [id: string]: KnapsackAssetSetData;
    };
}
export {};
//# sourceMappingURL=asset-sets.d.ts.map