import React, { PureComponent } from 'react';
import { Animated, ImageSourcePropType, ImageStyle, ImageURISource, StyleProp, TextInputProperties, TextStyle, ViewStyle } from 'react-native';
import { ClearButtonMode } from '../types/Store';
export interface SearchBarProps {
    placeholder?: string;
    onSubmit?: (value: string) => void;
    onChange?: (value: string) => void;
    onFocus?: (input: any, container: any) => void;
    onBlur?: (input: any, container: any) => void;
    onCancel?: () => void;
    renderCancelButton?: () => React.ReactNode;
    showSearchIcon?: boolean;
    showLocator?: boolean;
    showCancel?: boolean;
    clearButtonMode?: ClearButtonMode;
    searchTitle?: string;
    cancelTitle?: string;
    searchIcon?: ImageURISource;
    locateIcon?: ImageURISource;
    cancelImage?: ImageURISource;
    onLocateButtonPress?: () => void;
    inputProps?: TextInputProperties;
    shouldClearOnSubmit?: boolean;
    style?: StyleProp<ViewStyle>;
    containerStyle?: StyleProp<ViewStyle>;
    searchTitleStyle?: StyleProp<TextStyle>;
    cancelTitleStyle?: StyleProp<TextStyle>;
    searchIconStyle?: StyleProp<ImageStyle>;
    locateIconStyle?: StyleProp<ImageStyle>;
    inputTextStyle?: StyleProp<TextStyle>;
    cancelImageStyle?: StyleProp<ImageStyle>;
    cancelImageBoxStyle?: StyleProp<ViewStyle>;
    cancelContainerStyle?: StyleProp<ViewStyle>;
    cancelButtonWidth?: number;
    cancelButtonAlwaysVisible?: boolean;
    showRightBtnIcon?: boolean;
    rightBtnIcon?: ImageSourcePropType;
    onRightBtnPress?: () => void;
    rightBtnStyle?: StyleProp<ViewStyle>;
    rightBtnIconStyle?: StyleProp<ImageStyle>;
}
export interface SearchBarState {
    value: string;
    cancelButtonWidth: Animated.Value;
    isFocused: boolean;
}
export declare class SearchBar extends PureComponent<SearchBarProps, SearchBarState> {
    static defaultProps: Partial<SearchBarProps>;
    input: any;
    container: any;
    constructor(props: SearchBarProps);
    render(): any;
    saveContainerRef: (container: any) => any;
    saveInputRef: (input: any) => any;
    renderInput: () => JSX.Element;
    renderAndroidClearButton: () => JSX.Element | null;
    renderRightBtnIcon: () => JSX.Element | null;
    handleChangeText: (value: string) => void;
    handleSubmit: () => void;
    handleCancel: () => void;
    handleClear: () => void;
    handleFocus: () => void;
    handleBlur: () => void;
    handleLocate: () => void;
    focusInput: () => void;
    renderCancelButton: () => {} | null | undefined;
    renderLocateButton: () => JSX.Element | null;
}
