import { Plugin } from 'vue';
import { SvgNode } from './types';
export interface PrototypeConfig {
    colorMode: 'system' | 'light' | 'dark' | string;
    locale: string;
    validateOn: string[];
    routerComponent: string;
    color: string;
    size: string;
    componentOptions: any;
    [key: string]: any;
}
export interface PluginConfig extends PrototypeConfig {
    components: any;
    icons: Record<string, SvgNode>;
}
export interface Prototype {
    form: (...args: any[]) => any;
    setLocale: (language: string) => any;
    options: PrototypeConfig;
}
export interface InklineGlobals {
    prototype?: Prototype;
    icons?: Record<string, SvgNode>;
}
/**
 * Color mode localStorage key
 */
export declare const colorModeLocalStorageKey = "inkline-color-mode";
/**
 * Color mode change handler
 */
export declare const handleColorMode: (colorMode: string) => void;
/**
 * Default configuration options
 */
export declare const defaultOptions: PluginConfig;
/**
 * Create inkline prototype
 */
export declare function createPrototype({ icons, components, ...options }: PrototypeConfig): Prototype;
/**
 * Easily accessible global Inkline object
 */
export declare const inklineGlobals: InklineGlobals;
/**
 * Inkline Vue.js plugin
 */
export declare const Inkline: Plugin;
declare module '@vue/runtime-core' {
    interface ComponentCustomProperties {
        $inkline: Prototype;
    }
}
