import type { AnyFunction, Constructor } from './mapped-types';
export declare namespace Arrays {
    function findByType<T>(arr: any[], constructor: Constructor<T>): T | undefined;
    /** 自动推断item的类型的{@link Array.includes} */
    function includesTyped<T extends E, E>(arr: T[], item: E): item is T;
    /** 设置 指定位置的值 */
    function at<T>(arr: T[], index: number, value: T): void;
    /** 获取 指定位置的值 */
    function at<T>(arr: T[], index: number): T | undefined;
}
export declare namespace MVCArrays {
    function indexOf<T>(arr: google.maps.MVCArray<T>, item: T): number;
    function remove<T>(arr: google.maps.MVCArray<T>, item: T): T | undefined;
    /**
     * 监听数组内容变化
     * @see https://developers.google.com/maps/documentation/javascript/shapes#editable_events
     * */
    function listenChanged<T>(path: google.maps.MVCArray<T>, handler: AnyFunction): google.maps.MapsEventListener[];
}
