import type { PromptAiSdkFn } from '@levelcode/common/types/contracts/llm';
import type { Logger } from '@levelcode/common/types/contracts/logger';
import type { ParamsExcluding } from '@levelcode/common/types/function-params';
export declare const parseAndGetDiffBlocksSingleFile: (params: {
    newContent: string;
    oldFileContent: string;
    logger: Logger;
}) => {
    diffBlocks: {
        searchContent: string;
        replaceContent: string;
    }[];
    diffBlocksThatDidntMatch: {
        searchContent: string;
        replaceContent: string;
    }[];
};
export declare const tryToDoStringReplacementWithExtraIndentation: (params: {
    oldFileContent: string;
    searchContent: string;
    replaceContent: string;
}) => {
    searchContent: string;
    replaceContent: string;
} | null;
/**
 * Retries generating diff blocks when initial blocks failed to match the old file content.
 *
 * @throws {Error} When the request is aborted by user. Check with `isAbortError()`.
 */
export declare function retryDiffBlocksPrompt(params: {
    filePath: string;
    oldContent: string;
    clientSessionId: string;
    fingerprintId: string;
    userInputId: string;
    userId: string | undefined;
    diffBlocksThatDidntMatch: {
        searchContent: string;
        replaceContent: string;
    }[];
    promptAiSdk: PromptAiSdkFn;
    logger: Logger;
} & ParamsExcluding<PromptAiSdkFn, 'messages' | 'model'>): Promise<{
    newDiffBlocks: {
        searchContent: string;
        replaceContent: string;
    }[];
    newDiffBlocksThatDidntMatch: {
        searchContent: string;
        replaceContent: string;
    }[];
}>;
