/**
 * @license
 * Copyright 2023 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { BlockSvg } from '../block_svg.js';
import { ICopyData } from '../interfaces/i_copyable.js';
import { IPaster } from '../interfaces/i_paster.js';
import { State } from '../serialization/blocks.js';
import { Coordinate } from '../utils/coordinate.js';
import { WorkspaceSvg } from '../workspace_svg.js';
export declare class BlockPaster implements IPaster<BlockCopyData, BlockSvg> {
    static TYPE: string;
    paste(copyData: BlockCopyData, workspace: WorkspaceSvg, coordinate?: Coordinate): BlockSvg | null;
}
/**
 * Moves the given block to a location where it does not: (1) overlap exactly
 * with any other blocks, or (2) look like it is connected to any other blocks.
 *
 * Exported for testing.
 *
 * @param block The block to move to an unambiguous location.
 * @param originalPosition The initial coordinate to start searching from,
 *    likely the position of the copied block.
 * @internal
 */
export declare function moveBlockToNotConflict(block: BlockSvg, originalPosition: Coordinate): void;
export interface BlockCopyData extends ICopyData {
    blockState: State;
    typeCounts: {
        [key: string]: number;
    };
}
//# sourceMappingURL=block_paster.d.ts.map