import { GlobOptions } from 'tinyglobby';
import type { MemFsEditor } from '../index.ts';
import type { Options as MultimatchOptions } from 'multimatch';
type CopySingleAsyncOptions<TransformData = unknown, TransformOptions = unknown> = Parameters<MemFsEditor['append']>[2] & {
    append?: boolean;
    /**
     * @experimental This API is experimental and may change without a major version bump.
     *
     * Transform both the file path and content during copy.
     * @param options The transform options
     * @param options.destinationPath The destination file path
     * @param options.sourcePath The source file path
     * @param options.contents The file content as Buffer
     * @param options.options The options passed to fileTransform
     * @param options.data The data passed to fileTransform
     * @returns An object containing the new file path and contents.
     */
    fileTransform?: (options: {
        destinationPath: string;
        sourcePath: string;
        contents: Buffer;
        data?: TransformData;
        options?: TransformOptions;
    }) => {
        path: string;
        contents: string | Buffer;
    } | Promise<{
        path: string;
        contents: string | Buffer;
    }>;
    transformData?: TransformData;
    transformOptions?: TransformOptions;
};
type CopyAsyncOptions<TransformData = unknown, TransformOptions = unknown> = CopySingleAsyncOptions<TransformData, TransformOptions> & {
    noGlob?: boolean;
    /**
     * Options for disk globbing.
     * Glob options that should be compatible with minimatch results.
     */
    globOptions?: Pick<GlobOptions, 'caseSensitiveMatch' | 'cwd' | 'debug' | 'deep' | 'dot' | 'expandDirectories' | 'followSymbolicLinks'>;
    /**
     * Options for store files matching.
     */
    storeMatchOptions?: MultimatchOptions;
    ignoreNoMatch?: boolean;
    fromBasePath?: string;
};
export declare function copyAsync<const TransformData = unknown, const TransformOptions = unknown>(this: MemFsEditor, from: string | string[], to: string, options?: CopyAsyncOptions<TransformData, TransformOptions>): Promise<void>;
export {};
