import { type PropType } from 'vue';
import { LatLng } from '../../map/lat-lng';
import type { IconSequence } from '../../map/map/overlay/icon';
import type { PolylineEventMap, PolylineOverlay } from '../../map/map/overlay/polyline';
import { type EventEmits } from '../../utils/vue-utils';
type TgPolylineEmits = {
    'update:path': LatLng[];
};
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    path: {
        type: PropType<LatLng[]>;
        required: true;
    };
    icons: {
        type: PropType<IconSequence[]>;
    };
    clickable: {
        type: PropType<boolean>;
    };
    editable: {
        type: PropType<boolean>;
    };
    strokeColor: {
        type: PropType<string>;
    };
    strokeOpacity: {
        type: PropType<number>;
    };
    strokeWeight: {
        type: PropType<number>;
    };
    visible: {
        type: PropType<boolean>;
    };
    'onUpdate:path': import("vue").Prop<import("../index.ts").EventCallback<LatLng[]>>;
}>, {
    attrs: import("vue").ComputedRef<{
        binds: Record<string, unknown>;
        listeners: Record<string, unknown>;
        listenerProps: Record<string, unknown>;
    }>;
    overlay: PolylineOverlay;
    emittedPath: LatLng[] | undefined;
}, {}, {}, {}, import("vue").DefineComponent<{}, {}, {}, {}, {
    recreate(): void;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, import("vue").ComponentOptionsMixin, EventEmits<PolylineEventMap & TgPolylineEmits>, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    path: {
        type: PropType<LatLng[]>;
        required: true;
    };
    icons: {
        type: PropType<IconSequence[]>;
    };
    clickable: {
        type: PropType<boolean>;
    };
    editable: {
        type: PropType<boolean>;
    };
    strokeColor: {
        type: PropType<string>;
    };
    strokeOpacity: {
        type: PropType<number>;
    };
    strokeWeight: {
        type: PropType<number>;
    };
    visible: {
        type: PropType<boolean>;
    };
    'onUpdate:path': import("vue").Prop<import("../index.ts").EventCallback<LatLng[]>>;
}>> & Readonly<{
    onClick?: ((event: import("../index.ts").Tg.Event) => any) | undefined;
    onDblclick?: ((event: import("../index.ts").Tg.Event) => any) | undefined;
    onMousedown?: ((event: import("../index.ts").Tg.MouseEvent) => any) | undefined;
    onMouseup?: ((event: import("../index.ts").Tg.MouseEvent) => any) | undefined;
    onMouseout?: ((event: import("../index.ts").Tg.MouseEvent) => any) | undefined;
    onMouseover?: ((event: import("../index.ts").Tg.MouseEvent) => any) | undefined;
    "onPath-edited"?: ((event: import("../index.ts").Tg.Event) => any) | undefined;
    "onUpdate:path"?: ((event: LatLng[]) => any) | undefined;
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
