import LocalLogicClient from "@local-logic/client";
import { theme } from "~/components/deprecated";
type LocalLogicClientOptions = NonNullable<Parameters<typeof LocalLogicClient>["1"]>;
export type Theme = "day" | "night";
export type Appearance = {
    theme?: Theme;
    variables?: Partial<typeof theme>;
};
export type Environment = {
    sdk?: Environment;
    api?: LocalLogicClientOptions["environment"];
};
export type Locale = LocalLogicClientOptions["locale"];
export type ExternalId = string;
export type MapProviderNames = "maptiler" | "mapbox" | "google" | "testing";
export type MapProvider = {
    name: MapProviderNames;
    key?: string;
};
export interface SDKOptionsBase {
    options: {
        [key: string]: unknown;
    };
    apiKey: string;
    globalOptions?: {
        appearance?: Appearance;
        locale?: Locale;
        externalId?: ExternalId;
        environment?: Environment;
    };
    location?: {
        hash?: string;
        host?: string;
        hostname?: string;
        href?: string;
        origin?: string;
        pathname?: string;
        port?: string;
        protocol?: string;
        search?: string;
    };
    onChange: ({ type, data }: {
        type: any;
        data: any;
    }) => void;
}
export interface SDKOptions<T extends {
    [key: string]: unknown;
}, U extends {
    [key: string]: unknown;
}, V extends keyof U = keyof U> extends SDKOptionsBase {
    options: T;
    onChange: ({ type, data }: {
        type: V;
        data: U[V];
    }) => void;
}
export {};
//# sourceMappingURL=options.d.ts.map