import { OperationType, Selector } from "../../../../../mdk-core/src";
import { BlockEntityState, ScoreRange } from 'mdk-nbt';
import { BlockItemId } from 'mdk-nbt/dist/item/__';
import { Execute } from './Execute';
export declare type ConditionFn = (context: Logic) => Execute;
export declare class Logic {
    #private;
    constructor(context: Execute);
    block(blockID?: BlockItemId, coordicate?: string, blockState?: BlockEntityState): Execute;
    blocks(start: string, end: string, dest: string, mode?: 'all' | 'masked'): Execute;
    dataBlock(pos: string, path: string): Execute;
    dataEntity(target: string | Selector, path: string): Execute;
    dataStorage(source: string, path: string): Execute;
    /**
     * 探测实体
     * @param target 选择器
     */
    entity(target?: string | Selector): Execute;
    /**
     * 探测谓词
     * @param name 谓词名称
     */
    predicate(name: string): Execute;
    /**
     * 探测分数
     */
    score(target: string | Selector, targetObjective: string, source: string, srouceObjective: string, operation: OperationType): Execute;
    /**
     * 探测分数
     */
    scoreMatches(target: string | Selector, range: ScoreRange): Execute;
}
