import Vue, { VNodeData, VNodeChildren, VNode, PropType } from "vue"; import * as tsx from "vue-tsx-support"; import type { IComponentValidationEnabled, IValidator } from "./validation/IComponentValidationEnabled"; import { ConfirmDialogResponse, ConfirmDialogOptions } from "./confirmdialog/IVueConfirmDialog"; import { ITheming } from "./theming"; import * as models from "../models"; import { RecordPropsDefinition } from "vue/types/options"; import { PropsForOutside, RequiredPropNames, _TsxComponentV3 } from "vue-tsx-support"; import { CompositionComponentOptions } from "vue-tsx-support/lib/vca"; type VuetifyThemeItem = string | number | { base: string | number; lighten5: string | number; lighten4: string | number; lighten3: string | number; lighten2: string | number; lighten1: string | number; darken1: string | number; darken2: string | number; darken3: string | number; darken4: string | number; }; interface VuetifyTheme { [name: string]: VuetifyThemeItem; primary: VuetifyThemeItem; accent: VuetifyThemeItem; secondary: VuetifyThemeItem; info: VuetifyThemeItem; warning: VuetifyThemeItem; error: VuetifyThemeItem; success: VuetifyThemeItem; } type InheritanceTheme = { id: string; }; export interface VSlot { [name: string]: (ref?: any) => Array; } export interface IVueComponentBase extends tsx.Component { theming: ITheming; breakpoint: models.Breakpoint; theme: VuetifyTheme; $confirm: { open: (options?: ConfirmDialogOptions) => Promise; }; createElementByManifestId(componentManifestId: models.GuidValue, elementName?: string, data?: VNodeData, children?: VNodeChildren, onComponentCreated?: (instance: any) => void): VNode; } export interface VueComponentBaseProps { themeTargetId?: string | models.GuidValue; themeDefinitionId?: string | models.GuidValue; themeDefinition?: object; onComponentCreated?: (instance: any) => void; color?: string; useValidator?: IValidator; key?: string; } export interface VueComponentBaseEvents { } export declare function defineProps(props: RecordPropsDefinition): RecordPropsDefinition; export declare function definePropFunctionType(): PropType; export declare function definePropObjectType(): PropType; export declare class VueComponentBase extends tsx.Component implements IVueComponentBase, IComponentValidationEnabled { inheritanceTheme?: InheritanceTheme; themeTargetId?: string; themeDefinitionId?: string; themeDefinition?: models.ThemeDefinition; onComponentCreated?: (instance: any) => void; useValidator: IValidator; private omniaCurrentTheming; private validations; constructor(); get theming(): ITheming; get breakpoint(): models.Breakpoint; get theme(): VuetifyTheme; $confirm: { open: (options?: ConfirmDialogOptions) => Promise; }; resetInheritanceTheming(): void; setThemeDefinition(themingDefinition: models.ThemeDefinition): void; mounted(): void; transformVSlot(slot: VSlot): { scopedSlots: any; }; getValidationField(childs: Vue[]): void; addValidation(validation: any): void; clearValidation(): void; validate(): boolean; /** * Create Vnode from manifets id. * @param elementName that use to fallback in the case old data migration have not valid componentManifestId */ createElementByManifestId(componentManifestId: models.GuidValue, elementName?: string, data?: VNodeData, children?: VNodeChildren, onComponentCreated?: (instance: any) => void): VNode; getElementNameByManifestId(manifestId: models.GuidValue): string; } export declare function getVuetifyAppClasses(): string; export interface VueComponentConnectProps { content: () => JSX.Element; } export declare function defineVueComponent = RecordPropsDefinition, PrefixedEvents = any, ScopedSlots = any, On = any, RequiredProps extends keyof Props = RequiredPropNames & keyof Props>(options: CompositionComponentOptions): _TsxComponentV3, PrefixedEvents, On, ScopedSlots>; export declare const VueComponentConnect: tsx._TsxComponentV3 JSX.Element; }, "content">, any, any, any>; export {};