1import { CodeBlock } from '../utils/commonCodeMod';
2interface InsertContentFunctionOptions {
3    position: 'head' | 'tail' | 'tailBeforeLastReturn';
4    indent?: number;
5}
6/**
7 * Add Objective-C import
8 * @param source source contents
9 * @param imports array of imports, e.g. ['<Foundation/Foundation.h>']
10 * @returns updated contents
11 */
12export declare function addObjcImports(source: string, imports: string[]): string;
13/**
14 * Find code block of Objective-C interface or implementation
15 *
16 * @param contents source contents
17 * @param declaration interface/implementation, e.g. '@interface Foo'
18 * @returns found CodeBlock, or null if not found
19 */
20export declare function findObjcInterfaceCodeBlock(contents: string, declaration: string): CodeBlock | null;
21/**
22 * Find code block of Objective-C function without declaration, will return only {} block
23 *
24 * @param contents source contents
25 * @param selector function selector, e.g. 'doSomething:withSomeValue:'
26 * @returns found CodeBlock, or null if not found.
27 */
28export declare function findObjcFunctionCodeBlock(contents: string, selector: string): CodeBlock | null;
29/**
30 * Insert contents to the Objective-C function block
31 *
32 * @param srcContents source contents
33 * @param selector function selector, e.g. 'doSomething:withSomeValue:'
34 * @param insertion code to insert
35 * @param options insertion options
36 * @returns updated contents
37 */
38export declare function insertContentsInsideObjcFunctionBlock(srcContents: string, selector: string, insertion: string, options: InsertContentFunctionOptions): string;
39/**
40 * Insert contents to the Objective-C interface/implementation block
41 *
42 * @param srcContents source contents
43 * @param declaration interface/implementation, e.g. '@interface Foo'
44 * @param insertion code to insert
45 * @param options insertion options
46 * @returns updated contents
47 */
48export declare function insertContentsInsideObjcInterfaceBlock(srcContents: string, declaration: string, insertion: string, options: {
49    position: 'head' | 'tail';
50}): string;
51/**
52 * Find code block of Swift function without declaration, will return only {} block
53 *
54 * @param contents source contents
55 * @param selector function selector, e.g. 'doSomething(_:withSomeValue:)'
56 * @returns found CodeBlock, or null if not found.
57 */
58export declare function findSwiftFunctionCodeBlock(contents: string, selector: string): CodeBlock | null;
59/**
60 * Insert contents to the swift class block
61 *
62 * @param srcContents source contents
63 * @param declaration class/extension declaration, e.g. 'class AppDelegate'
64 * @param insertion code to append
65 * @param options insertion options
66 * @returns updated contents
67 */
68export declare function insertContentsInsideSwiftClassBlock(srcContents: string, declaration: string, insertion: string, options: {
69    position: 'head' | 'tail';
70}): string;
71/**
72 * Insert contents to the Swift function block
73 *
74 * @param srcContents source contents
75 * @param selector function selector, e.g. 'doSomething:withSomeValue:'
76 * @param insertion code to insert
77 * @param options insertion options
78 * @returns updated contents
79 */
80export declare function insertContentsInsideSwiftFunctionBlock(srcContents: string, selector: string, insertion: string, options: InsertContentFunctionOptions): string;
81export {};
82