import { AstroIntegration } from 'astro';
import { PlatformName, FaviconOptions } from 'favilib';

type Source = string | Buffer | (string | Buffer)[];
type InputSource = Record<PlatformName, Source>;
type Input = Source | Partial<InputSource>;

interface Options extends FaviconOptions {
    /**
     * Specify the source image(s) used to generate platform-specific assets.
     * @default `public/favicon.svg`.
     * @example
     * ```js
     * input: {
     *  yandex: ["public/favicon.svg", await readFile("path/to/pixel.png")]
     * }
     * ```
     */
    input?: Input;
    /**
     * Powered by `astro-capo`, it keeps the `<head>` content well-organized and tidy.
     * @default config.compressHTML `true`
     */
    withCapo?: boolean;
}
declare function createIntegration(options?: Options): AstroIntegration;

export { type Options, createIntegration as default };
