import type { LocationDescriptorObject } from "history";
import type NativeQuery from "../../../../metabase-lib/v1/queries/NativeQuery";
import type { Card } from "../../../../metabase-types/api";
import type { Dispatch, GetState } from "../../../../metabase-types/store";
type BlankQueryOptions = {
    db?: string;
    table?: string;
    segment?: string;
};
export type QueryParams = BlankQueryOptions & {
    slug?: string;
    objectId?: string;
};
export declare function deserializeCard(serializedCard: string): any;
type ResolveCardsResult = {
    card: Card;
    originalCard?: Card;
};
export declare function resolveCards({ cardId, deserializedCard, options, dispatch, getState, }: {
    cardId?: number;
    deserializedCard?: Card;
    options: BlankQueryOptions;
    dispatch: Dispatch;
    getState: GetState;
}): Promise<ResolveCardsResult>;
export declare function parseHash(hash?: string): {
    options: BlankQueryOptions;
    serializedCard: string | undefined;
};
export declare const INITIALIZE_QB = "metabase/qb/INITIALIZE_QB";
/**
 * Updates the template tag names in the query
 * to match the latest on the backend, because
 * they might have changed since the query was last opened.
 */
export declare function updateTemplateTagNames(query: NativeQuery, getState: GetState, dispatch: Dispatch): Promise<NativeQuery>;
export declare const initializeQB: (location: LocationDescriptorObject, params: QueryParams) => (dispatch: Dispatch, getState: GetState) => Promise<void>;
export {};
