type Queries<T extends string> = Record<T, string | boolean | undefined>;
type Getter<T extends string> = (matches: Queries<T>) => void;
interface Options<T extends string> {
    queries: Queries<T>;
    getter: Getter<T>;
    cookie: boolean;
}
export type { Options, Queries, Getter };
export declare function media<T extends string>({ queries, getter, cookie }: Partial<Options<T>>): {
    matches: Queries<T>;
    subscribe: (fn: (matches: Queries<T>) => void) => () => boolean;
};
