import React = require("react");
import { GenericSlice, Search } from "@gpa-gemstone/react-interactive";
import { Application, OpenXDA, SystemCenter } from "@gpa-gemstone/application-typings";
interface U {
    ID: number | string;
}
interface IProps<T extends U> {
    Slice: GenericSlice<T>;
    Selection: T[];
    OnClose: (selected: T[], conf: boolean) => void;
    Show: boolean;
    Type?: 'single' | 'multiple';
    Title: string;
    GetEnum: (setOptions: (options: IOptions[]) => void, field: Search.IField<T>) => () => void;
    GetAddlFields: (setAddlFields: (cols: Search.IField<T>[]) => void) => () => void;
    AddlFilters?: Search.IFilter<T>[];
    MinSelection?: number;
    children?: React.ReactNode;
    StorageID?: string;
}
interface IOptions {
    Value: string;
    Label: string;
}
/** This Implements a few standardized Selection Popups */
export declare namespace DefaultSelects {
    /** This Implements a standard Meter Selection Modal */
    function Meter(props: IProps<SystemCenter.Types.DetailedMeter>): React.JSX.Element;
    /** This Implements a standard Substation Selection Modal */
    function Location(props: IProps<SystemCenter.Types.DetailedLocation>): React.JSX.Element;
    /** This Implements a standard Transmission Asset Selection Modal */
    function Asset(props: IProps<SystemCenter.Types.DetailedAsset>): React.JSX.Element;
    /** This Implements a standard Asset Group Selection Modal */
    function AssetGroup(props: IProps<OpenXDA.Types.AssetGroup>): React.JSX.Element;
    /** This Implements a standard User Selection Modal */
    function User(props: IProps<Application.Types.iUserAccount>): React.JSX.Element;
    /** This Implements a standard Customer Selection Modal */
    function Customer(props: IProps<OpenXDA.Types.Customer>): React.JSX.Element;
}
export {};
