import type { ResizeControlVariant } from './types'

declare const _default: __VLS_WithTemplateSlots<
  import('vue').DefineComponent<
    {
      nodeId: {
        type: import('vue').PropType<string | null>
      }
      color: {
        type: import('vue').PropType<string>
      }
      minWidth: {
        type: import('vue').PropType<number>
        default: number
      }
      minHeight: {
        type: import('vue').PropType<number>
        default: number
      }
      maxWidth: {
        type: import('vue').PropType<number>
        default: number
      }
      maxHeight: {
        type: import('vue').PropType<number>
        default: number
      }
      position: {
        type: import('vue').PropType<import('./types').ControlPosition>
      }
      variant: {
        type: import('vue').PropType<ResizeControlVariant>
        default: ResizeControlVariant
      }
      shouldResize: {
        type: import('vue').PropType<import('./types').ShouldResize>
      }
      keepAspectRatio: {
        type: import('vue').PropType<number | boolean>
        default: boolean
      }
    },
    {},
    unknown,
    {},
    {},
    import('vue').ComponentOptionsMixin,
    import('vue').ComponentOptionsMixin,
    {
      resizeStart: (resizeEvent: import('./types').OnResizeStart) => void
      resize: (resizeEvent: import('./types').OnResize) => void
      resizeEnd: (resizeEvent: import('./types').OnResizeStart) => void
    },
    string,
    import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps,
    Readonly<
      import('vue').ExtractPropTypes<{
        nodeId: {
          type: import('vue').PropType<string | null>
        }
        color: {
          type: import('vue').PropType<string>
        }
        minWidth: {
          type: import('vue').PropType<number>
          default: number
        }
        minHeight: {
          type: import('vue').PropType<number>
          default: number
        }
        maxWidth: {
          type: import('vue').PropType<number>
          default: number
        }
        maxHeight: {
          type: import('vue').PropType<number>
          default: number
        }
        position: {
          type: import('vue').PropType<import('./types').ControlPosition>
        }
        variant: {
          type: import('vue').PropType<ResizeControlVariant>
          default: ResizeControlVariant
        }
        shouldResize: {
          type: import('vue').PropType<import('./types').ShouldResize>
        }
        keepAspectRatio: {
          type: import('vue').PropType<number | boolean>
          default: boolean
        }
      }>
    > & {
      onResizeStart?: ((resizeEvent: import('./types').OnResizeStart) => any) | undefined
      onResize?: ((resizeEvent: import('./types').OnResize) => any) | undefined
      onResizeEnd?: ((resizeEvent: import('./types').OnResizeStart) => any) | undefined
    },
    {
      minWidth: number
      minHeight: number
      maxWidth: number
      maxHeight: number
      variant: ResizeControlVariant
      keepAspectRatio: number | boolean
    },
    {}
  >,
  {
    default?(_: {}): any
  }
>
export default _default
type __VLS_WithTemplateSlots<T, S> = T & {
  new (): {
    $slots: S
  }
}
