import * as _nuxt_schema from '@nuxt/schema';
import { CookieSameSite, RegisterOptions } from '@teamhanko/hanko-elements';

interface ModuleOptions {
    /**
     * This can be overridden at runtime by setting NUXT_PUBLIC_HANKO_API_URL
     */
    apiURL?: string;
    registerComponents?: boolean;
    augmentContext?: boolean;
    cookieName?: string;
    cookieSameSite?: CookieSameSite;
    cookieDomain?: string;
    storageKey?: string;
    redirects?: {
        login?: string;
        home?: string;
        success?: string;
        followRedirect?: boolean;
    };
    components?: {
        shadow?: RegisterOptions['shadow'];
        injectStyles?: RegisterOptions['injectStyles'];
        enablePasskeys?: RegisterOptions['enablePasskeys'];
        hidePasskeyButtonOnLogin?: RegisterOptions['hidePasskeyButtonOnLogin'];
        translations?: RegisterOptions['translations'];
        translationsLocation?: RegisterOptions['translationsLocation'];
        fallbackLanguage?: RegisterOptions['fallbackLanguage'];
    };
}
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;

declare module '@nuxt/schema' {
    interface PublicRuntimeConfig {
        hanko: {
            apiURL: NonNullable<ModuleOptions['apiURL']>;
            cookieName: NonNullable<ModuleOptions['cookieName']>;
            cookieSameSite?: ModuleOptions['cookieSameSite'];
            cookieDomain?: ModuleOptions['cookieDomain'];
            storageKey?: ModuleOptions['storageKey'];
            components: ModuleOptions['components'];
        };
    }
}

export { _default as default };
export type { ModuleOptions };
