import { WindowIdentifier, WindowDescriptor } from "../services/window/types";
import { FEAWindow } from "../FEA";
export declare function clone(from: any, to?: any): any;
/**
 * @introduction
 * <h2>Finsemble Utility Functions</h2>
 */
export declare function isPercentage(val: any): boolean;
export declare function crossDomain(url: string): boolean;
/**
 * Returns a finWindow or null if not found
 * @param  windowIdentifier A window identifier
 * @param  cb Optional callback containing finWindow or null if not found (or use Promise)
 * @return Promise that resolves to a finWindow or rejects if not found
 */
export declare function getFinWindow(windowIdentifier?: WindowIdentifier, cb?: (remoteWindow: FEAWindow | null) => void): Promise<FEAWindow>;
/**
 * Retrieves a windowDescriptor given a windowIdentifier
 * @param windowIdentifier The window to locate. If empty then the current window is returned.
 * @param cb Function to retrieve result (optional or use Promise)
 * @return A promise that resolves to a WindowDescriptor
 */
export declare function getWindowDescriptor(windowIdentifier?: WindowIdentifier, cb?: (windowDescriptor: WindowDescriptor | null) => void): Promise<WindowDescriptor>;
/**
 * Returns a windowIdentifier for the current window
 * @param cb Callback function returns windowIdentifier for this window (optional or use Promise)
 * @returns A promise that resolves to a windowIdentifier
 */
export declare const getMyWindowIdentifier: (cb?: ((windowIdentifier: WindowIdentifier) => void) | undefined) => Promise<WindowIdentifier>;
/**
 * @returns Transforms an array of strings into a camel cased string.
 * @memberof Utils
 */
export declare function camelCase(...args: string[]): string;
export declare function injectJS(path: string, cb?: (this: GlobalEventHandlers, ev: Event) => any): void;
export declare function isWindows(cb?: (osIsWindows: boolean) => void): Promise<boolean>;
/**
 * Calculates windowType for a newly spawned window
 * windowType can be set or overwritten in many ways. The intention here is to end up with a limited set of
 * final windowTypes
 * @export
 * @param config Object containing all possible values used to set windowTypes, some of these values may be unset depending on the execution path
 */
export declare function getWindowType(config: any): string;
/**
 * Returns the windowName for a given router header. This is temporary
 * and should be replaced with an actual windowName in the header! It currently
 * extracts the window name from the origin entry (which is the router client name).
 * @param header - The router header.
 * @returns
 */
export declare const windowNameFromRouterHeader: (header: any) => string;
//# sourceMappingURL=util.d.ts.map