declare module "types" {
    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 };
}
declare module "media" {
    import type { Options, Queries } from "types";
    export function media<T extends string>({ queries, getter, cookie }: Partial<Options<T>>): {
        matches: Queries<T>;
        subscribe: (fn: (matches: Queries<T>) => void) => () => boolean;
    };
}
declare module "@slidy/media" {
    export { media } from "media";
    export type { Options, Queries, Getter } from "types";
}
