import Vue from 'vue'; export interface Wrapper { value: V; } declare type Value = Wrapper; declare type BailTypes = Function | Map | Set | WeakMap | WeakSet; export declare type UnwrapValue = T extends Value ? UnwrapValue2 : T extends BailTypes ? T : T extends object ? { [K in keyof T]: UnwrapValue2; } : T; declare type UnwrapValue2 = T extends Value ? UnwrapValue3 : T extends BailTypes ? T : T extends object ? { [K in keyof T]: UnwrapValue3; } : T; declare type UnwrapValue3 = T extends Value ? UnwrapValue4 : T extends BailTypes ? T : T extends object ? { [K in keyof T]: UnwrapValue4; } : T; declare type UnwrapValue4 = T extends Value ? UnwrapValue5 : T extends BailTypes ? T : T extends object ? { [K in keyof T]: UnwrapValue5; } : T; declare type UnwrapValue5 = T extends Value ? UnwrapValue6 : T extends BailTypes ? T : T extends object ? { [K in keyof T]: UnwrapValue6; } : T; declare type UnwrapValue6 = T extends Value ? UnwrapValue7 : T extends BailTypes ? T : T extends object ? { [K in keyof T]: UnwrapValue7; } : T; declare type UnwrapValue7 = T extends Value ? UnwrapValue8 : T extends BailTypes ? T : T extends object ? { [K in keyof T]: UnwrapValue8; } : T; declare type UnwrapValue8 = T extends Value ? UnwrapValue9 : T extends BailTypes ? T : T extends object ? { [K in keyof T]: UnwrapValue9; } : T; declare type UnwrapValue9 = T extends Value ? UnwrapValue10 : T extends BailTypes ? T : T extends object ? { [K in keyof T]: UnwrapValue10; } : T; declare type UnwrapValue10 = T extends Value ? V : T; export default abstract class AbstractWrapper { protected _propName?: string; protected _vm?: Vue; abstract value: V; setVmProperty(vm: Vue, propName: string): void; protected abstract exposeToDevtool(): void; } export {};