import { default as ViewTransitionManager } from './view-transition-manager';
type PromiseResolve = (value?: PromiseLike<undefined> | undefined) => void;
type PromiseReject = (reason?: unknown) => void;
export type DeferredPromise = Promise<undefined> & {
    resolve: PromiseResolve;
    reject: PromiseReject;
};
export declare function defer(): DeferredPromise;
export type Callback = () => unknown;
export declare class ViewTransition {
    private viewTransitionElement;
    finished: DeferredPromise;
    ready: DeferredPromise;
    updateCallbackDone: DeferredPromise;
    constructor(viewTransitionElement: ViewTransitionManager);
    skipTransition(): void;
}
export type StylableElement = Element & {
    style: CSSStyleDeclaration;
};
export declare function isStylableElement(element: unknown): element is StylableElement;
export declare function cloneElementWithStyles(element: StylableElement, live?: boolean): Element | undefined;
type CSSTransformProperty = 'translate' | 'rotate' | 'scale';
export declare function CSSTransformPropertyToFunction(transformProperty: CSSTransformProperty, transformString: string): string;
export declare function getElementPosition(element: HTMLElement): {
    top: number;
    left: number;
};
export declare function setElementVisibility(element: StylableElement, value: boolean): void;
export declare function setDocumentVisibility(value: boolean): void;
export {};
