import { CamelCase } from './camel-case';
export interface SwAuthConfig<CSSObject> {
    container: HTMLElement;
    containerStyles?: CSSObject;
}
export declare enum AttributesDefinitions {
    'use-button-options' = "boolean",
    'disable-create-new-user' = "boolean",
    'partner-key' = "string",
    'use-dev' = "boolean",
    'hide-button' = "boolean"
}
declare type EnumKeys = keyof typeof AttributesDefinitions;
export declare type SwElementAttributes = {
    [key in EnumKeys]: unknown | boolean | string | number;
};
export declare type SwAttributes = {
    [K in keyof SwElementAttributes as CamelCase<K>]: SwElementAttributes[K];
};
export interface ShadowRootConfig<EmotionCache> {
    cache: EmotionCache;
    root: HTMLElement;
    shadowRoot: HTMLElement;
    mountPoint: HTMLElement;
}
export declare type AttributeCallbackFn = (name: string, value: string, newVal: string) => void;
export interface SwAuthButtonProps {
    attributes: SwAttributes;
    container: HTMLElement;
    setAttrCallback: (fn: AttributeCallbackFn) => void;
}
export {};
