import type { Options } from 'ol/proj/Projection';
import Projection from 'ol/proj/Projection';
import type { AnimationOptions, FitOptions } from 'ol/View';
import View from 'ol/View';
import type { Coordinate } from 'ol/coordinate';
import type { Extent } from 'ol/extent';
import type { Size } from 'ol/size';
import type { Pixel } from 'ol/pixel';
import type BaseEvent from 'ol/events/Event';
import type { SimpleGeometry } from 'ol/geom';
export default function useView(properties: Record<string, unknown> & {
    projection: string | Options;
}, emit: (ev: ('centerChanged' | 'zoomChanged' | 'resolutionChanged' | 'rotationChanged'), ...args: any[]) => void): {
    view: View;
    adjustCenter: (deltaCoordinates: Coordinate) => void;
    adjustResolution: (ratio: number, optAnchor?: Coordinate) => void;
    adjustRotation: (delta: number, optAnchor?: Coordinate) => void;
    adjustZoom: (delta: number, optAnchor?: Coordinate) => void;
    animate: (...args: (AnimationOptions | ((arg0: boolean) => void))[]) => void;
    beginInteraction: () => void;
    calculateExtent: (optSize?: Size | undefined) => Extent;
    cancelAnimations: () => void;
    centerOn: (coordinate: Coordinate, size: Size, position: Pixel) => void;
    changed: () => void;
    dispatchEvent: (event: string | BaseEvent) => boolean | undefined;
    endInteraction: (optDuration?: number | undefined, optResolutionDirection?: number | undefined, optAnchor?: Coordinate | undefined) => void;
    fit: (geometryOrExtent: Extent | SimpleGeometry, options?: FitOptions | undefined) => void;
    get: (key: string) => any;
    getAnimating: () => boolean;
    getCenter: () => Coordinate | undefined;
    getInteracting: () => boolean;
    getKeys: () => string[];
    getMaxResolution: () => number;
    getMaxZoom: () => number;
    getMinResolution: () => number;
    getMinZoom: () => number;
    getProjection: () => Projection;
    getProperties: () => {
        [x: string]: any;
    };
    getResolution: () => number | undefined;
    getResolutionForExtent: (extent: Extent, size?: Size | undefined) => number;
    getResolutionForZoom: (zoom: number) => number;
    getResolutions: () => number[] | undefined;
    getRevision: () => number;
    getRotation: () => number;
    getZoom: () => number | undefined;
    getZoomForResolution: (resolution: number) => number | undefined;
    setCenter: (center: Coordinate | undefined) => void;
    setConstrainResolution: (enabled: boolean) => void;
    setMaxZoom: (zoom: number) => void;
    setMinZoom: (zoom: number) => void;
    setResolution: (resolution: number | undefined) => void;
    setRotation: (rotation: number) => void;
    setZoom: (zoom: number) => void;
};
