import React, { PureComponent } from 'react';
import { StyleProp, TextStyle, ViewStyle } from 'react-native';
import { SearchBarProps } from './SearchBar';
export interface SearchScreenResult {
    title: string;
    query: string;
    [key: string]: any;
}
export interface SearchScreenProps {
    onClose: () => void;
    onResultPress?: (result: SearchScreenResult) => void;
    onInputChange?: (value: string) => void;
    onInputSubmit?: (value: string) => void;
    renderResultItem?: (result: SearchScreenResult, index: number, inputValue: string) => React.ReactNode;
    renderResultsHeader?: () => React.ReactNode;
    searchBarProps?: SearchBarProps;
    results?: SearchScreenResult[];
    itemStyle?: StyleProp<ViewStyle>;
    itemTextStyle?: StyleProp<TextStyle>;
    renderContentUnderSearchBar?: () => React.ReactNode;
    searchResultsScrollViewStyle?: StyleProp<ViewStyle>;
    searchBarContainerStyle?: StyleProp<ViewStyle>;
    searchBarShouldFocus?: boolean;
}
export interface SearchScreenState {
    history: SearchScreenResult[];
    inputValue: string;
}
export declare class SearchScreen extends PureComponent<SearchScreenProps, SearchScreenState> {
    searchBar: any;
    constructor(props: SearchScreenProps);
    loadHistoryToState: () => void;
    componentDidMount(): void;
    getSearchBarRef: (ref: any) => void;
    getHistory: () => Promise<SearchScreenResult[]>;
    addToHistory: (item: SearchScreenResult) => Promise<SearchScreenResult[]>;
    handleResultPress: (result: SearchScreenResult) => () => void;
    handleSubmit: (value: string) => void;
    clearHistory: () => Promise<void>;
    renderHistory: () => JSX.Element | null;
    renderResult: () => JSX.Element | null;
    renderItem: (item: SearchScreenResult, i: number) => {} | null | undefined;
    renderTextWithHighLighs: (name: string | undefined, query: string) => JSX.Element;
    handleChange: (value: string) => void;
    renderSearchBar: () => JSX.Element;
    renderContentUnderSearchBar: () => {} | null | undefined;
    render(): JSX.Element;
}
