import { DataGridWebSocket } from '@/components/DataGrid/DataGridWebSocket';
import { UseMutationOptions } from '@tanstack/react-query';
import { GridModel } from '@/components/DataGrid/DataGridTypes';
interface EstablishWebsocketParams {
    replicaId: number;
    sessionId: string;
    websocketOptions?: {
        onGridReady?: () => void;
        onStatusChange?: (open: boolean) => void;
        onModelCreate?: (model: GridModel) => void;
        model?: GridModel | null;
    };
}
/**
 * Hook to establish a DataGrid WebSocket using a presigned URL.
 * Assumes the WebSocket will connect successfully once a presigned URL is retrieved.
 */
export declare function useEstablishWebsocketConnection(options?: Partial<UseMutationOptions<DataGridWebSocket, unknown, EstablishWebsocketParams>>): {
    presignedUrl: string | null;
    clearPresignedUrl: () => void;
    data: undefined;
    variables: undefined;
    error: null;
    isError: false;
    isIdle: true;
    isPending: false;
    isSuccess: false;
    status: "idle";
    mutate: import("@tanstack/react-query").UseMutateFunction<DataGridWebSocket, unknown, EstablishWebsocketParams, unknown>;
    reset: () => void;
    context: unknown;
    failureCount: number;
    failureReason: unknown;
    isPaused: boolean;
    submittedAt: number;
    mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<DataGridWebSocket, unknown, EstablishWebsocketParams, unknown>;
} | {
    presignedUrl: string | null;
    clearPresignedUrl: () => void;
    data: undefined;
    variables: EstablishWebsocketParams;
    error: null;
    isError: false;
    isIdle: false;
    isPending: true;
    isSuccess: false;
    status: "pending";
    mutate: import("@tanstack/react-query").UseMutateFunction<DataGridWebSocket, unknown, EstablishWebsocketParams, unknown>;
    reset: () => void;
    context: unknown;
    failureCount: number;
    failureReason: unknown;
    isPaused: boolean;
    submittedAt: number;
    mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<DataGridWebSocket, unknown, EstablishWebsocketParams, unknown>;
} | {
    presignedUrl: string | null;
    clearPresignedUrl: () => void;
    data: undefined;
    error: unknown;
    variables: EstablishWebsocketParams;
    isError: true;
    isIdle: false;
    isPending: false;
    isSuccess: false;
    status: "error";
    mutate: import("@tanstack/react-query").UseMutateFunction<DataGridWebSocket, unknown, EstablishWebsocketParams, unknown>;
    reset: () => void;
    context: unknown;
    failureCount: number;
    failureReason: unknown;
    isPaused: boolean;
    submittedAt: number;
    mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<DataGridWebSocket, unknown, EstablishWebsocketParams, unknown>;
} | {
    presignedUrl: string | null;
    clearPresignedUrl: () => void;
    data: DataGridWebSocket;
    error: null;
    variables: EstablishWebsocketParams;
    isError: false;
    isIdle: false;
    isPending: false;
    isSuccess: true;
    status: "success";
    mutate: import("@tanstack/react-query").UseMutateFunction<DataGridWebSocket, unknown, EstablishWebsocketParams, unknown>;
    reset: () => void;
    context: unknown;
    failureCount: number;
    failureReason: unknown;
    isPaused: boolean;
    submittedAt: number;
    mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<DataGridWebSocket, unknown, EstablishWebsocketParams, unknown>;
};
export {};
//# sourceMappingURL=useEstablishWebsocketConnection.d.ts.map