import * as React from 'react';
import { WithSheet } from 'react-jss';
import { IgnoreJSSNested } from '../../types';
export declare enum TEXT {
    ON_OFF = 0,
    YES_NO = 1
}
interface OwnProps {
    disabledHint?: string;
    checked?: boolean;
    onChange?: (e: React.ChangeEvent<HTMLInputElement>) => any;
    text?: TEXT;
    disabled?: boolean;
}
declare const styles: {
    hint: {
        width: string;
        maxWidth: number;
        marginTop: number;
        marginRight: number;
    };
    switcher: {
        transition: string;
        display: string;
        height: string;
        position: string;
        width: string;
    };
    button: any;
    content: {
        '& span': {
            height: string;
            lineHeight: string;
            float: string;
        };
        transition: string;
        background: string;
        display: string;
        float: string;
        height: string;
        width: string;
        fontSize: string;
        fontWeight: string;
        textTransform: string;
        top: string;
    };
    contentLeft: {
        backgroundImage: string;
        backgroundSize: string;
        '& span': {
            marginRight: string;
            float: string;
        };
    };
    contentRight: {
        backgroundColor: string;
        color: string;
        backgroundSize: string;
        '& span': {
            marginLeft: string;
            display: string;
            width: number;
            textAlign: string;
        };
    };
    viewport: any;
    toggle: {
        display: string;
        visibility: string;
        '& + $viewport > $switcher': {
            left: string;
        };
        '& + $viewport > $button': {
            left: number;
        };
        '& + $viewport > $content': {
            left: string;
        };
        '& + $viewport > $contentLeft': {
            marginLeft: number;
        };
        '&:checked + $viewport > $switcher': {
            left: number;
        };
        '&:checked + $viewport $button': {
            left: number;
            color: string;
            backgroundColor: string;
        };
        '&:checked + $viewport $contentLeft': {
            marginLeft: number;
        };
        '&:disabled + $viewport $content': {
            color: string;
            background: string;
        };
        '&:disabled:checked + $viewport $content': {
            color: string;
            background: string;
        };
        '&:disabled:checked + $viewport $button': {
            backgroundColor: string;
        };
    };
};
declare type Props = OwnProps & WithSheet<IgnoreJSSNested<typeof styles>, {}>;
export declare const Switcher: React.ComponentType<Pick<Pick<Props, "theme" | "classes" | "innerRef"> & Partial<Pick<Props, "text" | "disabled" | "checked" | "onChange" | "disabledHint">> & Partial<Pick<{
    text: TEXT;
    onChange: () => void;
    checked: boolean;
    disabled: boolean;
    disabledHint: string;
}, never>>, "text" | "disabled" | "checked" | "onChange" | "disabledHint"> & import("react-jss/lib/injectSheet").StyledComponentProps<"hint" | "content" | "button" | "viewport" | "switcher" | "contentLeft" | "contentRight" | "toggle">>;
export {};
