import type { SearchItemsMultiCategoriesRequest, SearchItemsMultiCategoriesResponse } from '@wix/ambassador-media-public-media-v1-media-item/types';
import React from 'react';
import type { UpdateEntityFileSelectFunc } from '../ricos-content/index.js';
import type { MediaUploadFn } from '../_shared/create-media-upload-fn.js';
import type { PickMediaFn } from '../_shared/media/pick-media.js';
import type { DecodedInstance } from '../_shared/request-service-provider/parse-instance.js';
import type { FetchSitePages } from '../_shared/site-pages/types.js';
import type { AiRequestService } from '../plugin-ai/utils/use-ai-request-service.js';
import type { GifsResult } from '../plugin-giphy/types.js';
import type { DoPromptStream } from '../plugin-inline-ai/types.js';
import type { EmbeddableItem, VerticalApiType } from '../plugin-vertical-embed/types.js';
/** Context to inject dev mocks */
export declare const DevContext: React.Context<DevContextProps>;
export type DevContextProps = {
    trackRender?: (componentName: string) => void;
    aiRequestService?: AiRequestService;
    giphyRequestService?: {
        getTrendingGifs: (params: {
            path: 'search' | 'trending';
            category: 'gifs' | 'stickers';
            limit: number;
            offset: number;
            searchTag?: string;
        }) => Promise<{
            type: string;
            results: GifsResult;
        }>;
        getSearchGifs: (params: {
            path: 'search' | 'trending';
            category: 'gifs' | 'stickers';
            limit: number;
            offset: number;
            searchTag?: string;
        }) => Promise<{
            type: string;
            results: GifsResult;
        }>;
    };
    shapeService?: {
        fetchShapes: (options: SearchItemsMultiCategoriesRequest, makeRequest: (input: string | URL, init?: RequestInit) => Promise<Response>) => Promise<SearchItemsMultiCategoriesResponse>;
    };
    pmNodeAttrs?: Record<string, any>;
    fetchSitePages?: FetchSitePages;
    fetchOembedWithAuthFromDevContext?: (url: string) => Promise<{
        html?: string;
        title?: string;
        thumbnail_url?: string;
        thumbnail_width?: number;
        thumbnail_height?: number;
    }>;
    fetchVerticalEmbedItemsFromDevContext?: (type: VerticalApiType, query?: string) => Promise<EmbeddableItem[]>;
    fetchVerticalEmbedItemFromDevContext?: (type: VerticalApiType, embedId: string) => Promise<EmbeddableItem>;
    renderCounts?: Map<string, number>;
    pickMedia?: PickMediaFn;
    resetRenderCounts?: () => void;
    onRenderCountChange?: (listener: (renderCounts: Map<string, number>) => void) => () => void;
    connectionState?: ConnectionState;
    setConnectionState?: React.Dispatch<React.SetStateAction<ConnectionState>>;
    logBi?: (params: {
        dataHook: string;
        value?: string | boolean | number;
    }) => void;
    decodedInstance?: Partial<DecodedInstance>;
    handleFileUpload?: MediaUploadFn;
    mockInlineAiResponseChunks?: DoPromptStream;
    handleFileSelection?: (updateEntity: UpdateEntityFileSelectFunc<any>, options?: {
        multiple?: boolean;
        index?: number;
        isCover?: boolean;
    }) => Promise<void>;
};
export type DevService = () => DevContextProps;
export declare const useDevService: () => () => DevContextProps;
export type ConnectionState = {
    type: 'BROKEN';
    delay: number;
    status: number;
    response?: any;
} | {
    type: 'DELAYED';
    delay: number;
} | {
    type: 'NO_MODIFICATION';
};
export declare const useTrackRender: (componentName: string) => void | undefined;
export declare const useDevGiphyRequestService: () => {
    getTrendingGifs: (params: {
        path: 'search' | 'trending';
        category: 'gifs' | 'stickers';
        limit: number;
        offset: number;
        searchTag?: string;
    }) => Promise<{
        type: string;
        results: GifsResult;
    }>;
    getSearchGifs: (params: {
        path: 'search' | 'trending';
        category: 'gifs' | 'stickers';
        limit: number;
        offset: number;
        searchTag?: string;
    }) => Promise<{
        type: string;
        results: GifsResult;
    }>;
} | undefined;
export declare const useDevAiRequestService: () => AiRequestService | undefined;
export declare const useDevShapeService: () => {
    fetchShapes: (options: SearchItemsMultiCategoriesRequest, makeRequest: (input: string | URL, init?: RequestInit) => Promise<Response>) => Promise<SearchItemsMultiCategoriesResponse>;
} | undefined;
export declare const useDevConnectionState: () => ConnectionState;
export declare const useDevLogBi: () => ((params: {
    dataHook: string;
    value?: string | boolean | number;
}) => void) | undefined;
export declare const useDevPmNodeAttrs: () => Record<string, any> | undefined;
export declare const useDevPickMedia: () => PickMediaFn | undefined;
export declare const useDevVerticalEmbedItems: () => ((type: VerticalApiType, query?: string) => Promise<EmbeddableItem[]>) | undefined;
export declare const useDevVerticalEmbedItem: () => ((type: VerticalApiType, embedId: string) => Promise<EmbeddableItem>) | undefined;
export declare const useMockInlineAiResponseChunks: () => DoPromptStream | undefined;
//# sourceMappingURL=dev-context.d.ts.map