export declare const $c: (cls: string, parent?: JQuery) => JQuery<HTMLElement>;

export declare const $i: (id: string, parent?: JQuery) => JQuery<HTMLElement>;

export declare const addCodeBlocksDbListener: (listener: CodeBlocksDbListenersOptional) => void;

declare type AnswerBarType = 'perplexity' | 'pro' | 'reasoning' | 'deep-research';

export declare const areCodeBlockInfosEqual: (a: CodeBlockInfo, b: CodeBlockInfo) => boolean;

export declare const autoTablerIconClass = "tabler-icon-arrows-shuffle";

export declare const calcNewPromptValueFromTextAndPosition: (originalValue: string, toAdd: string, position: InputTextPosition, caretPos: number) => {
    newValue: string;
    newCaretPosition: number;
};

export declare const changeValueOfTextAreaViaEvent: (selector: HTMLTextAreaElement, value: string) => void;

export declare const checkCodeBlocks: () => void;

export declare type CodeBlockInfo = {
    cbId: string;
    answerIndex: number;
    codeBlockIndex: number;
    language: string;
    code: string;
    finished: boolean;
};

declare namespace codeBlockInfo {
    export {
        CodeBlockInfo,
        WindowWithDebugCodeBlocksInfo,
        getCodeAndLanguageFromCodeEl,
        getCodeBlockInfo,
        getCodeBlockElementFromCodeBlockInfo
    }
}

declare namespace codeBlocksDb {
    export {
        WindowWithDebugCodeBlocksDb,
        CodeBlocksDbListeners,
        CodeBlocksDbListenersOptional,
        addCodeBlocksDbListener,
        removeCodeBlocksDbListener,
        areCodeBlockInfosEqual,
        updateCodeBlocksDb,
        checkCodeBlocks,
        getCodeBlocksDb
    }
}

export declare interface CodeBlocksDbListeners {
    onCodeBlocksDbAdded: (item: CodeBlockInfo) => void;
    onCodeBlocksDbRemoved: (item: CodeBlockInfo) => void;
    onCodeBlocksDbUpdated: (oldItem: CodeBlockInfo, newItem: CodeBlockInfo) => void;
}

export declare type CodeBlocksDbListenersOptional = Partial<CodeBlocksDbListeners>;

export declare const copyToClipboard: (text: string) => Promise<void>;

export declare const debugWrapperFunctions: {
    all: {
        readonly wrapperHasFocusIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasAcademicFocusIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasMathFocusIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasWritingFocusIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasVideoFocusIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasSocialFocusIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasWebSearchIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasAnyFocusIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasSourcesIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasAttachIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasCollectionIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasRecencyIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasFileIcon: (wrapper: JQuery) => boolean;
        readonly wrapperHasUploadButtonWithImagePreview: (wrapper: JQuery) => boolean;
        readonly wrapperIsFixed: (wrapper: JQuery) => boolean;
    };
    test: (wrapper: JQuery) => {
        [k: string]: boolean;
    };
};

export declare const deepResearchTablerIconClass = "tabler-icon-atom";

export declare const disablePromptArea: () => void;

export declare const doSelectModel: (index: number, parent?: JQuery) => Promise<boolean>;

export declare const doSelectQueryMode: (queryMode: QueryMode, parent?: JQuery) => boolean;

export declare const ellipsis: (maxLen: number) => (str: string) => string;

export declare const enablePromptArea: () => void;

export declare const getAllAnswerBars: () => JQuery<HTMLElement>;

export declare const getAnswerBarFromElementInAnswer: ($element: JQuery<HTMLElement>) => JQuery<HTMLElement>;

export declare const getAnswerBarType: ($answerBar: JQuery<HTMLElement>) => AnswerBarType | null;

export declare const getAnswerBarTypeFromQueryMode: (queryMode: QueryMode) => AnswerBarType;

export declare const getAnyModeButton: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getAnyPromptArea: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getAnyPromptAreaWrapper: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getAttachFilesButton: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getCodeAndLanguageFromCodeEl: ($codeBlock: JQuery<HTMLElement>) => [string, string];

export declare const getCodeBlockElementFromCodeBlockInfo: (codeBlockInfo: CodeBlockInfo) => JQuery<HTMLElement>;

export declare const getCodeBlockElements: () => JQuery<HTMLElement>;

export declare const getCodeBlockInfo: (codeBlockEl: HTMLElement | JQuery<HTMLElement>) => CodeBlockInfo | null;

export declare const getCodeBlocksDb: () => CodeBlockInfo[];

export declare const getCodeBlockWrapper: (codeBlock: JQuery) => JQuery<HTMLElement>;

export declare const getCodeFromCodeEl: (codeEl: JQuery<HTMLElement>) => string;

export declare const getCopyToClipboardButton: ($codeBlock: JQuery<HTMLElement>) => JQuery<HTMLElement>;

export declare const getCurrentMode: (parent?: JQuery) => QueryMode | null;

export declare const getCurrentThreadId: () => string | null;

export declare const getDeepResearchIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getFirstPromptEl: () => JQuery<HTMLElement>;

export declare const getHomeWidgets: () => JQuery<HTMLElement>;

export declare const getIconsInLeftPanel: () => JQuery<HTMLElement>;

export declare const getImageGenerationOverlay: () => JQuery<HTMLElement>;

export declare const getImagesInRightPanel: () => JQuery<HTMLElement>;

export declare const getLanguageElFromCodeEl: (codeEl: JQuery<HTMLElement>) => JQuery<HTMLElement>;

export declare const getLanguageFromCodeEl: (codeEl: JQuery<HTMLElement>) => string;

export declare const getLanguageFromCodeElRaw: (codeEl: JQuery<HTMLElement>) => string;

export declare const getLanguageFromReactPropsOfCodeWrapper: (codeBlockWrapper: JQuery) => string | null;

export declare const getLeftPanel: () => JQuery<HTMLElement>;

export declare const getModeAutoButton: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getModeDeepResearchButton: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getModelButton: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getModelDescriptionFromModelButton: ($modelButton?: JQuery) => ModelDescriptor | null;

export declare const getModelDescriptorFromId: (id: string) => ModelDescriptor | null;

export declare const getModelSelectionList: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getModelSelectionListItems: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getModelTitleFromModelButton: ($modelButton?: JQuery) => string | null;

export declare const getModeProButton: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getModeReasoningButton: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getPerplexityIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getPopoverList: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getPopoverListItems: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getProIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getPromptAreaOfNewThread: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getPromptAreaOnCollection: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getPromptAreaOnThread: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getPromptAreaWrapperOfNewThread: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getPromptAreaWrapperOnCollection: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getPromptAreaWrapperOnThread: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getQueryModeFromAnswerBarType: (answerBarType: AnswerBarType) => QueryMode;

export declare const getReasoningIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getRecencyButton: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getRecencySelectionList: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getRecencySelectionListItems: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getSourcesButton: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getSourcesSelectionList: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getSourcesSelectionListItems: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const getStopButtonOnFloatingPromptBox: () => JQuery<HTMLElement>;

export declare const getTextOfFirstPrompt: () => string;

export declare const id: <T>(value: T) => T;

export declare const INPUT_TEXT_POSITION: Record<string, InputTextPosition>;

export declare type InputTextPosition = 'cursor' | 'before' | 'after' | 'replace';

export declare const isButtonHighlighted: ($button: JQuery) => boolean;

export declare const isSearchPage: (url: string) => boolean;

export declare const jq: JQueryStatic;

export declare interface ModelDescriptor {
    index: number;
    ppModelId: string;
    modelButtonTooltip?: string;
    nameEn: string;
    descriptionEn: string;
    modelType: 'normal' | 'reasoning';
}

export declare const modelDescriptors: ReadonlyArray<Readonly<ModelDescriptor>>;

export declare const noConflict: () => {
    noConflict: /*elided*/ any;
    modelDescriptors: ReadonlyArray<Readonly<pplxModels.ModelDescriptor>>;
    id: <T>(value: T) => T;
    ellipsis: (maxLen: number) => (str: string) => string;
    getCodeAndLanguageFromCodeEl: ($codeBlock: JQuery<HTMLElement>) => [string, string];
    getCodeBlockInfo: (codeBlockEl: HTMLElement | JQuery<HTMLElement>) => codeBlockInfo.CodeBlockInfo | null;
    getCodeBlockElementFromCodeBlockInfo: (codeBlockInfo: codeBlockInfo.CodeBlockInfo) => JQuery<HTMLElement>;
    addCodeBlocksDbListener: (listener: codeBlocksDb.CodeBlocksDbListenersOptional) => void;
    removeCodeBlocksDbListener: (listener: codeBlocksDb.CodeBlocksDbListenersOptional) => void;
    areCodeBlockInfosEqual: (a: codeBlockInfo.CodeBlockInfo, b: codeBlockInfo.CodeBlockInfo) => boolean;
    updateCodeBlocksDb: (cbId: string, info: codeBlockInfo.CodeBlockInfo | null) => void;
    checkCodeBlocks: () => void;
    getCodeBlocksDb: () => codeBlockInfo.CodeBlockInfo[];
    debugWrapperFunctions: {
        all: {
            readonly wrapperHasFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasAcademicFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasMathFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasWritingFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasVideoFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasSocialFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasWebSearchIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasAnyFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasSourcesIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasAttachIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasCollectionIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasRecencyIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasFileIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasUploadButtonWithImagePreview: (wrapper: JQuery) => boolean;
            readonly wrapperIsFixed: (wrapper: JQuery) => boolean;
        };
        test: (wrapper: JQuery) => {
            [k: string]: boolean;
        };
    };
    getPromptAreaOfNewThread: (parent?: JQuery) => JQuery<HTMLElement>;
    getPromptAreaWrapperOfNewThread: (parent?: JQuery) => JQuery<HTMLElement>;
    getPromptAreaOnThread: (parent?: JQuery) => JQuery<HTMLElement>;
    getPromptAreaWrapperOnThread: (parent?: JQuery) => JQuery<HTMLElement>;
    getPromptAreaOnCollection: (parent?: JQuery) => JQuery<HTMLElement>;
    getPromptAreaWrapperOnCollection: (parent?: JQuery) => JQuery<HTMLElement>;
    getAnyPromptArea: (parent?: JQuery) => JQuery<HTMLElement>;
    getAnyPromptAreaWrapper: (parent?: JQuery) => JQuery<HTMLElement>;
    perplexitySvgPathPrefix: "M29.6848 25.4603L48.3092 41.4828V65.1065L29.6848 49.0293M29.6848";
    proSpiralSvgPathPrefix: "M11.9759 1.99999L11.9879 2.00001C10.5169 2.00565";
    proSvgPathPrefix: "M5.01 17.833h11.023a6.34 6.34 0 0 0 2.91-.676 5.484 5.484 0 0 0";
    reasoningSvgPathPrefix: "M12 5.125C11.5168 5.125 11.125 5.51675 11.125";
    autoTablerIconClass: "tabler-icon-arrows-shuffle";
    deepResearchTablerIconClass: "tabler-icon-atom";
    getModeAutoButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getModeProButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getModeReasoningButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getModeDeepResearchButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getAnyModeButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getAttachFilesButton: (parent?: JQuery) => JQuery<HTMLElement>;
    submitButtonRight: (parent?: JQuery) => JQuery<HTMLElement>;
    submitButtonUp: (parent?: JQuery) => JQuery<HTMLElement>;
    submitButtonAny: (parent?: JQuery) => JQuery<HTMLElement>;
    isButtonHighlighted: ($button: JQuery) => boolean;
    getPopoverList: (parent?: JQuery) => JQuery<HTMLElement>;
    getPopoverListItems: (parent?: JQuery) => JQuery<HTMLElement>;
    getModelButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getModelSelectionList: (parent?: JQuery) => JQuery<HTMLElement>;
    getModelSelectionListItems: (parent?: JQuery) => JQuery<HTMLElement>;
    getSourcesButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getSourcesSelectionList: (parent?: JQuery) => JQuery<HTMLElement>;
    getSourcesSelectionListItems: (parent?: JQuery) => JQuery<HTMLElement>;
    getRecencyButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getRecencySelectionList: (parent?: JQuery) => JQuery<HTMLElement>;
    getRecencySelectionListItems: (parent?: JQuery) => JQuery<HTMLElement>;
    getModelDescriptorFromId: (id: string) => pplxModels.ModelDescriptor | null;
    getModelTitleFromModelButton: ($modelButton?: JQuery) => string | null;
    getModelDescriptionFromModelButton: ($modelButton?: JQuery) => pplxModels.ModelDescriptor | null;
    doSelectModel: (index: number, parent?: JQuery) => Promise<boolean>;
    getCurrentMode: (parent?: JQuery) => ("reasoning" | "auto" | "pro" | "deep-research") | null;
    doSelectQueryMode: (queryMode: "reasoning" | "auto" | "pro" | "deep-research", parent?: JQuery) => boolean;
    getPerplexityIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;
    getProIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;
    getReasoningIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;
    getDeepResearchIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;
    getAnswerBarType: ($answerBar: JQuery<HTMLElement>) => ("reasoning" | "pro" | "deep-research" | "perplexity") | null;
    getQueryModeFromAnswerBarType: (answerBarType: "reasoning" | "pro" | "deep-research" | "perplexity") => "reasoning" | "auto" | "pro" | "deep-research";
    getAnswerBarTypeFromQueryMode: (queryMode: "reasoning" | "auto" | "pro" | "deep-research") => "reasoning" | "pro" | "deep-research" | "perplexity";
    getIconsInLeftPanel: () => JQuery<HTMLElement>;
    getLeftPanel: () => JQuery<HTMLElement>;
    getHomeWidgets: () => JQuery<HTMLElement>;
    getImageGenerationOverlay: () => JQuery<HTMLElement>;
    getCodeBlockElements: () => JQuery<HTMLElement>;
    getCodeBlockWrapper: (codeBlock: JQuery) => JQuery<HTMLElement>;
    getLanguageFromReactPropsOfCodeWrapper: (codeBlockWrapper: JQuery) => string | null;
    getImagesInRightPanel: () => JQuery<HTMLElement>;
    getFirstPromptEl: () => JQuery<HTMLElement>;
    getTextOfFirstPrompt: () => string;
    getStopButtonOnFloatingPromptBox: () => JQuery<HTMLElement>;
    changeValueOfTextAreaViaEvent: (selector: HTMLTextAreaElement, value: string) => void;
    INPUT_TEXT_POSITION: Record<string, pplxHelpers.InputTextPosition>;
    calcNewPromptValueFromTextAndPosition: (originalValue: string, toAdd: string, position: pplxHelpers.InputTextPosition, caretPos: number) => {
        newValue: string;
        newCaretPosition: number;
    };
    simulateInputTextToPromptArea: (text: string, options?: {
        position?: pplxHelpers.InputTextPosition;
        focus?: boolean;
    }) => boolean;
    copyToClipboard: (text: string) => Promise<void>;
    getAllAnswerBars: () => JQuery<HTMLElement>;
    getAnswerBarFromElementInAnswer: ($element: JQuery<HTMLElement>) => JQuery<HTMLElement>;
    getCurrentThreadId: () => string | null;
    searchPattern: RegExp;
    isSearchPage: (url: string) => boolean;
    getCopyToClipboardButton: ($codeBlock: JQuery<HTMLElement>) => JQuery<HTMLElement>;
    getCodeFromCodeEl: (codeEl: JQuery<HTMLElement>) => string;
    getLanguageFromCodeEl: (codeEl: JQuery<HTMLElement>) => string;
    getLanguageElFromCodeEl: (codeEl: JQuery<HTMLElement>) => JQuery<HTMLElement>;
    getLanguageFromCodeElRaw: (codeEl: JQuery<HTMLElement>) => string;
    translatePerplexityLanguageToRealLanguage: (language: string, _code: string) => string;
    disablePromptArea: () => void;
    enablePromptArea: () => void;
    saveStringAsFile: (filename: string, content: string) => void;
    version: string;
    jq: JQueryStatic;
    $: JQueryStatic;
    $c: (cls: string, parent?: JQuery) => JQuery<HTMLElement>;
    $i: (id: string, parent?: JQuery) => JQuery<HTMLElement>;
};

export declare const perplexitySvgPathPrefix = "M29.6848 25.4603L48.3092 41.4828V65.1065L29.6848 49.0293M29.6848";

declare const PP: {
    noConflict: () => /*elided*/ any;
    modelDescriptors: ReadonlyArray<Readonly<pplxModels.ModelDescriptor>>;
    id: <T>(value: T) => T;
    ellipsis: (maxLen: number) => (str: string) => string;
    getCodeAndLanguageFromCodeEl: ($codeBlock: JQuery<HTMLElement>) => [string, string];
    getCodeBlockInfo: (codeBlockEl: HTMLElement | JQuery<HTMLElement>) => codeBlockInfo.CodeBlockInfo | null;
    getCodeBlockElementFromCodeBlockInfo: (codeBlockInfo: codeBlockInfo.CodeBlockInfo) => JQuery<HTMLElement>;
    addCodeBlocksDbListener: (listener: codeBlocksDb.CodeBlocksDbListenersOptional) => void;
    removeCodeBlocksDbListener: (listener: codeBlocksDb.CodeBlocksDbListenersOptional) => void;
    areCodeBlockInfosEqual: (a: codeBlockInfo.CodeBlockInfo, b: codeBlockInfo.CodeBlockInfo) => boolean;
    updateCodeBlocksDb: (cbId: string, info: codeBlockInfo.CodeBlockInfo | null) => void;
    checkCodeBlocks: () => void;
    getCodeBlocksDb: () => codeBlockInfo.CodeBlockInfo[];
    debugWrapperFunctions: {
        all: {
            readonly wrapperHasFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasAcademicFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasMathFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasWritingFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasVideoFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasSocialFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasWebSearchIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasAnyFocusIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasSourcesIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasAttachIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasCollectionIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasRecencyIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasFileIcon: (wrapper: JQuery) => boolean;
            readonly wrapperHasUploadButtonWithImagePreview: (wrapper: JQuery) => boolean;
            readonly wrapperIsFixed: (wrapper: JQuery) => boolean;
        };
        test: (wrapper: JQuery) => {
            [k: string]: boolean;
        };
    };
    getPromptAreaOfNewThread: (parent?: JQuery) => JQuery<HTMLElement>;
    getPromptAreaWrapperOfNewThread: (parent?: JQuery) => JQuery<HTMLElement>;
    getPromptAreaOnThread: (parent?: JQuery) => JQuery<HTMLElement>;
    getPromptAreaWrapperOnThread: (parent?: JQuery) => JQuery<HTMLElement>;
    getPromptAreaOnCollection: (parent?: JQuery) => JQuery<HTMLElement>;
    getPromptAreaWrapperOnCollection: (parent?: JQuery) => JQuery<HTMLElement>;
    getAnyPromptArea: (parent?: JQuery) => JQuery<HTMLElement>;
    getAnyPromptAreaWrapper: (parent?: JQuery) => JQuery<HTMLElement>;
    perplexitySvgPathPrefix: "M29.6848 25.4603L48.3092 41.4828V65.1065L29.6848 49.0293M29.6848";
    proSpiralSvgPathPrefix: "M11.9759 1.99999L11.9879 2.00001C10.5169 2.00565";
    proSvgPathPrefix: "M5.01 17.833h11.023a6.34 6.34 0 0 0 2.91-.676 5.484 5.484 0 0 0";
    reasoningSvgPathPrefix: "M12 5.125C11.5168 5.125 11.125 5.51675 11.125";
    autoTablerIconClass: "tabler-icon-arrows-shuffle";
    deepResearchTablerIconClass: "tabler-icon-atom";
    getModeAutoButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getModeProButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getModeReasoningButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getModeDeepResearchButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getAnyModeButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getAttachFilesButton: (parent?: JQuery) => JQuery<HTMLElement>;
    submitButtonRight: (parent?: JQuery) => JQuery<HTMLElement>;
    submitButtonUp: (parent?: JQuery) => JQuery<HTMLElement>;
    submitButtonAny: (parent?: JQuery) => JQuery<HTMLElement>;
    isButtonHighlighted: ($button: JQuery) => boolean;
    getPopoverList: (parent?: JQuery) => JQuery<HTMLElement>;
    getPopoverListItems: (parent?: JQuery) => JQuery<HTMLElement>;
    getModelButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getModelSelectionList: (parent?: JQuery) => JQuery<HTMLElement>;
    getModelSelectionListItems: (parent?: JQuery) => JQuery<HTMLElement>;
    getSourcesButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getSourcesSelectionList: (parent?: JQuery) => JQuery<HTMLElement>;
    getSourcesSelectionListItems: (parent?: JQuery) => JQuery<HTMLElement>;
    getRecencyButton: (parent?: JQuery) => JQuery<HTMLElement>;
    getRecencySelectionList: (parent?: JQuery) => JQuery<HTMLElement>;
    getRecencySelectionListItems: (parent?: JQuery) => JQuery<HTMLElement>;
    getModelDescriptorFromId: (id: string) => pplxModels.ModelDescriptor | null;
    getModelTitleFromModelButton: ($modelButton?: JQuery) => string | null;
    getModelDescriptionFromModelButton: ($modelButton?: JQuery) => pplxModels.ModelDescriptor | null;
    doSelectModel: (index: number, parent?: JQuery) => Promise<boolean>;
    getCurrentMode: (parent?: JQuery) => ("reasoning" | "auto" | "pro" | "deep-research") | null;
    doSelectQueryMode: (queryMode: "reasoning" | "auto" | "pro" | "deep-research", parent?: JQuery) => boolean;
    getPerplexityIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;
    getProIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;
    getReasoningIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;
    getDeepResearchIconFromAnswerBar: (parent?: JQuery) => JQuery<HTMLElement>;
    getAnswerBarType: ($answerBar: JQuery<HTMLElement>) => ("reasoning" | "pro" | "deep-research" | "perplexity") | null;
    getQueryModeFromAnswerBarType: (answerBarType: "reasoning" | "pro" | "deep-research" | "perplexity") => "reasoning" | "auto" | "pro" | "deep-research";
    getAnswerBarTypeFromQueryMode: (queryMode: "reasoning" | "auto" | "pro" | "deep-research") => "reasoning" | "pro" | "deep-research" | "perplexity";
    getIconsInLeftPanel: () => JQuery<HTMLElement>;
    getLeftPanel: () => JQuery<HTMLElement>;
    getHomeWidgets: () => JQuery<HTMLElement>;
    getImageGenerationOverlay: () => JQuery<HTMLElement>;
    getCodeBlockElements: () => JQuery<HTMLElement>;
    getCodeBlockWrapper: (codeBlock: JQuery) => JQuery<HTMLElement>;
    getLanguageFromReactPropsOfCodeWrapper: (codeBlockWrapper: JQuery) => string | null;
    getImagesInRightPanel: () => JQuery<HTMLElement>;
    getFirstPromptEl: () => JQuery<HTMLElement>;
    getTextOfFirstPrompt: () => string;
    getStopButtonOnFloatingPromptBox: () => JQuery<HTMLElement>;
    changeValueOfTextAreaViaEvent: (selector: HTMLTextAreaElement, value: string) => void;
    INPUT_TEXT_POSITION: Record<string, pplxHelpers.InputTextPosition>;
    calcNewPromptValueFromTextAndPosition: (originalValue: string, toAdd: string, position: pplxHelpers.InputTextPosition, caretPos: number) => {
        newValue: string;
        newCaretPosition: number;
    };
    simulateInputTextToPromptArea: (text: string, options?: {
        position?: pplxHelpers.InputTextPosition;
        focus?: boolean;
    }) => boolean;
    copyToClipboard: (text: string) => Promise<void>;
    getAllAnswerBars: () => JQuery<HTMLElement>;
    getAnswerBarFromElementInAnswer: ($element: JQuery<HTMLElement>) => JQuery<HTMLElement>;
    getCurrentThreadId: () => string | null;
    searchPattern: RegExp;
    isSearchPage: (url: string) => boolean;
    getCopyToClipboardButton: ($codeBlock: JQuery<HTMLElement>) => JQuery<HTMLElement>;
    getCodeFromCodeEl: (codeEl: JQuery<HTMLElement>) => string;
    getLanguageFromCodeEl: (codeEl: JQuery<HTMLElement>) => string;
    getLanguageElFromCodeEl: (codeEl: JQuery<HTMLElement>) => JQuery<HTMLElement>;
    getLanguageFromCodeElRaw: (codeEl: JQuery<HTMLElement>) => string;
    translatePerplexityLanguageToRealLanguage: (language: string, _code: string) => string;
    disablePromptArea: () => void;
    enablePromptArea: () => void;
    saveStringAsFile: (filename: string, content: string) => void;
    version: string;
    jq: JQueryStatic;
    $: JQueryStatic;
    $c: (cls: string, parent?: JQuery) => JQuery<HTMLElement>;
    $i: (id: string, parent?: JQuery) => JQuery<HTMLElement>;
};
export { PP }
export default PP;

declare namespace pplxHelpers {
    export {
        debugWrapperFunctions,
        getPromptAreaOfNewThread,
        getPromptAreaWrapperOfNewThread,
        getPromptAreaOnThread,
        getPromptAreaWrapperOnThread,
        getPromptAreaOnCollection,
        getPromptAreaWrapperOnCollection,
        getAnyPromptArea,
        getAnyPromptAreaWrapper,
        perplexitySvgPathPrefix,
        proSpiralSvgPathPrefix,
        proSvgPathPrefix,
        reasoningSvgPathPrefix,
        autoTablerIconClass,
        deepResearchTablerIconClass,
        getModeAutoButton,
        getModeProButton,
        getModeReasoningButton,
        getModeDeepResearchButton,
        getAnyModeButton,
        getAttachFilesButton,
        submitButtonRight,
        submitButtonUp,
        submitButtonAny,
        isButtonHighlighted,
        getPopoverList,
        getPopoverListItems,
        getModelButton,
        getModelSelectionList,
        getModelSelectionListItems,
        getSourcesButton,
        getSourcesSelectionList,
        getSourcesSelectionListItems,
        getRecencyButton,
        getRecencySelectionList,
        getRecencySelectionListItems,
        getModelDescriptorFromId,
        getModelTitleFromModelButton,
        getModelDescriptionFromModelButton,
        doSelectModel,
        getCurrentMode,
        doSelectQueryMode,
        getPerplexityIconFromAnswerBar,
        getProIconFromAnswerBar,
        getReasoningIconFromAnswerBar,
        getDeepResearchIconFromAnswerBar,
        getAnswerBarType,
        getQueryModeFromAnswerBarType,
        getAnswerBarTypeFromQueryMode,
        getIconsInLeftPanel,
        getLeftPanel,
        getHomeWidgets,
        getImageGenerationOverlay,
        getCodeBlockElements,
        getCodeBlockWrapper,
        getLanguageFromReactPropsOfCodeWrapper,
        getImagesInRightPanel,
        getFirstPromptEl,
        getTextOfFirstPrompt,
        getStopButtonOnFloatingPromptBox,
        changeValueOfTextAreaViaEvent,
        INPUT_TEXT_POSITION,
        InputTextPosition,
        calcNewPromptValueFromTextAndPosition,
        simulateInputTextToPromptArea,
        copyToClipboard,
        getAllAnswerBars,
        getAnswerBarFromElementInAnswer,
        getCurrentThreadId,
        searchPattern,
        isSearchPage,
        getCopyToClipboardButton,
        getCodeFromCodeEl,
        getLanguageFromCodeEl,
        getLanguageElFromCodeEl,
        getLanguageFromCodeElRaw,
        translatePerplexityLanguageToRealLanguage,
        disablePromptArea,
        enablePromptArea,
        saveStringAsFile
    }
}

declare namespace pplxModels {
    export {
        ModelDescriptor,
        modelDescriptors
    }
}

export declare const proSpiralSvgPathPrefix = "M11.9759 1.99999L11.9879 2.00001C10.5169 2.00565";

export declare const proSvgPathPrefix = "M5.01 17.833h11.023a6.34 6.34 0 0 0 2.91-.676 5.484 5.484 0 0 0";

declare type QueryMode = 'auto' | 'pro' | 'reasoning' | 'deep-research';

export declare const reasoningSvgPathPrefix = "M12 5.125C11.5168 5.125 11.125 5.51675 11.125";

export declare const removeCodeBlocksDbListener: (listener: CodeBlocksDbListenersOptional) => void;

export declare const saveStringAsFile: (filename: string, content: string) => void;

export declare const searchPattern: RegExp;

export declare const simulateInputTextToPromptArea: (text: string, options?: {
    position?: InputTextPosition;
    focus?: boolean;
}) => boolean;

export declare const submitButtonAny: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const submitButtonRight: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const submitButtonUp: (parent?: JQuery) => JQuery<HTMLElement>;

export declare const translatePerplexityLanguageToRealLanguage: (language: string, _code: string) => string;

export declare const updateCodeBlocksDb: (cbId: string, info: CodeBlockInfo | null) => void;

export declare const version: string;

export declare interface WindowWithDebugCodeBlocksDb extends Window {
    DEBUG_CODE_BLOCKS_DB?: boolean;
}

export declare interface WindowWithDebugCodeBlocksInfo extends Window {
    DEBUG_CODE_BLOCKS_INFO?: boolean;
}

export { }

declare global {
    interface Window {
        PP?: typeof PP;
    }
}


declare global {
    interface JQuery {
        nthParent: (n: number) => JQuery;
        pipeJQ: (fn: (el: JQuery) => JQuery) => JQuery;
        pipeFirst: <T>(fn: (el: JQuery) => T) => T;
        pipeAll: <T>(fn: (el: JQuery) => T[]) => T[];
    }
}


declare global {
    interface Window {
        PPD: PPGlobal;
    }
}
