import type { FlyyerExtension } from "./ext";
import type { FlyyerMetaVariables } from "./meta";
import type { FlyyerVariables } from "./variables";
export interface FlyyerCommonParams<T extends FlyyerVariables> {
    /**
     * Optional. Leave empty `""` or as `_` to always grab the latest version.
     */
    version?: string | number | undefined | null;
    /**
     * Supported extensions are: `"jpeg" | "jpg" | "png" | "webp"`
     */
    extension?: FlyyerExtension | undefined | null;
    /**
     * JS serializable variables.
     * @example
     * const flyyerRender = new FlyyerRender({ variables: { title: "Hello world", image: "https://example.com/logo.png" } })
     * console.log(flyyerRender.href())
     * // https://cdn.flyyer.io/r/v2/TENANT/DECK/TEMPLATE.jpeg?title=Hello+world&image=https%3A%2F%2Fexample.com%2Flogo.png
     * @example
     * const flyyer = new Flyyer({ variables: { title: "Hello world", image: "https://example.com/logo.png" } })
     * console.log(flyyer.href())
     * // https://cdn.flyyer.io/v2/flyyer-com/_/title=Hello+world&image=https%3A%2F%2Fexample.com%2Flogo.png/
     */
    variables?: T | undefined | null;
    /**
     * Meta variables usually have values assigned by Flyyer depending on how and where images are rendered.
     *
     * You can force these values here.
     * @example
     * const meta: FlyyerMetaVariables ={
     *   width: 1080, // in pixels
     *   height: 1080, // in pixels
     *   v: null, // disable cache-burst
     *   id: "my-id", // analytics id
     * }
     * const flyyerRender = new FlyyerRender({ meta });
     * const flyyer = new Flyyer({ meta });
     * @example
     * `https://cdn.flyyer.io/r/v2/flyyer/default/main.jpeg?__v=disabled`
     * `https://cdn.flyyer.io/r/v2/flyyer/default/main.jpeg?_w=1080&_h=1080`
     * `https://cdn.flyyer.io/v2/flyyer-com/_/_/?__v=disabled`
     * `https://cdn.flyyer.io/v2/flyyer-com/_/_w=1080&_h=1080/marketplace`
     */
    meta?: FlyyerMetaVariables | undefined | null;
    secret?: string | undefined | undefined | null;
    strategy?: "JWT" | "HMAC" | undefined | null;
}
