export declare enum Types { string = "string", array = "array", object = "object", mediaQueryList = "mediaQueryList" } export interface ObjectType { [index: string]: T; } export type Query = string; export type QueryArray = QueryAny[]; export type QueryObject = ObjectType; export type QueryAny = Query | QueryArray | QueryObject; export type Matches = T; export type MatchesArray = T; export type MatchesObject> = T; export type MatchesAny = Matches | MatchesArray | MatchesObject; export type MatchesType = T extends Query ? Matches : T extends QueryObject ? MatchesObject : QueryArray;