import type { ArrayLiteralExpression, SourceFile } from 'ts-morph';
type DuplicateFinder = (item: string, array: ArrayLiteralExpression | undefined) => boolean;
export declare class ArrayDriver {
    /** Add a single item to an array, skipping if duplicate. */
    static addArrayItem(sourceFile: SourceFile, item: string, array: ArrayLiteralExpression | string, finder?: DuplicateFinder): void;
    /** Add multiple items to an array, skipping duplicates. */
    static addArrayItems(sourceFile: SourceFile, items: string[], array: ArrayLiteralExpression | string): void;
    /** Change the `useClass` of a provider object that matches `provide`. */
    static changeProviderArray(array: ArrayLiteralExpression, provide: string, adapter: string): void;
    /** Remove an element from an array by its text. */
    static removeItem(array: ArrayLiteralExpression, item: string): void;
    /** Remove a provider object from the array by its `provide` value. */
    static removeProviderArray(array: ArrayLiteralExpression, provide: string): void;
    private static getUniqueArrayItems;
    private static isDuplicate;
    private static resolveArray;
}
export {};
