export type LaboratorySettings = {
    fetch: {
        credentials: 'include' | 'omit' | 'same-origin';
        timeout?: number;
        retry?: number;
        useGETForQueries?: boolean;
    };
    subscriptions: {
        protocol: 'SSE' | 'GRAPHQL_SSE' | 'WS' | 'LEGACY_WS';
    };
    introspection: {
        method?: 'GET' | 'POST';
        schemaDescription?: boolean;
    };
};
export declare const defaultLaboratorySettings: LaboratorySettings;
export declare const normalizeLaboratorySettings: (settings?: Partial<LaboratorySettings> | null) => LaboratorySettings;
export interface LaboratorySettingsState {
    settings: LaboratorySettings;
}
export interface LaboratorySettingsActions {
    setSettings: (settings: LaboratorySettings) => void;
}
export declare const useSettings: (props: {
    defaultSettings?: LaboratorySettings | null;
    onSettingsChange?: (settings: LaboratorySettings | null) => void;
}) => LaboratorySettingsState & LaboratorySettingsActions;
