import { RecordId } from "../types/record";
import Table from "../models/table";
import TableOrViewQueryResult from "../models/table_or_view_query_result";
import LinkedRecordsQueryResult from "../models/linked_records_query_result";
import RecordQueryResult, { RecordQueryResultOpts, RecordIdQueryResultOpts, SingleRecordQueryResultOpts } from "../models/record_query_result";
import Record from "../models/record";
import View from "../models/view";
/** */
declare type AnyQueryResult = TableOrViewQueryResult | LinkedRecordsQueryResult;
/** */
declare type TableOrViewOrQueryResult = Table | View | AnyQueryResult;
/** */
export declare function useRecordIds(tableOrView: Table | View, opts?: RecordIdQueryResultOpts): Array<RecordId>;
/** */
export declare function useRecordIds(queryResult: AnyQueryResult): Array<RecordId>;
/** */
export declare function useRecordIds(tableOrViewOrQueryResult: null): null;
/** */
export declare function useRecords(tableOrView: Table | View, opts?: RecordQueryResultOpts): Array<Record>;
/** */
export declare function useRecords(queryResult: AnyQueryResult): Array<Record>;
/** */
export declare function useRecords(tableOrViewOrQueryResult: null): null;
/** */
export declare function useRecordById(tableOrView: Table | View, recordId: RecordId, opts?: SingleRecordQueryResultOpts): Record | null;
/** */
export declare function useRecordById(queryResult: AnyQueryResult, recordId: RecordId): Record | null;
/**
 * Docs: TODO(SeanKeenan)
 *
 * @docsPath UI/hooks/useRecordQueryResult
 * @hidden
 * @hook
 */
export declare function useRecordQueryResult(tableOrViewOrQueryResult: TableOrViewOrQueryResult | null, opts?: RecordQueryResultOpts): RecordQueryResult | null;
export {};
