import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { SKTileAdjacencyMask } from "./SKTileAdjacencyMask.js";
export declare class _SKTileGroupRule extends _NSObject {
    static alloc(): _SKTileGroupRule;
    static new(): _SKTileGroupRule;
    init(): _SKTileGroupRule;
    /**
     * Create a tile group rule with the specified adjacency and tile definitions. @param adjacency the adjacency requirements for this rule; use the mask that covers the adjacent spaces that must be filled with tiles belonging to the same group; tiles not masked out must be empty @param tileDefinitions the tile definitions used for this rule
     */
    static tileGroupRuleWithAdjacency$tileDefinitions$(adjacency: SKTileAdjacencyMask, tileDefinitions: _NSArray): _SKTileGroupRule;
    /**
     * Initilize a tile group rule with the specified adjacency and tile definitions. @param adjacency the adjacency requirements for this rule; use the mask that covers the adjacent spaces that must be filled with tiles belonging to the same group; tiles not masked out must be empty @param tileDefinitions the tile definitions used for this rule
     */
    initWithAdjacency$tileDefinitions$(adjacency: SKTileAdjacencyMask, tileDefinitions: _NSArray): _SKTileGroupRule;
    /**
     * The adjacency mask used by this rule. Set this to the mask that covers the adjacent spaces that must be filled with tiles belonging to the same group for this rule met.
     */
    adjacency(): SKTileAdjacencyMask;
    setAdjacency$(value: SKTileAdjacencyMask): void;
    /**
     * The tile definitions used by this rule. If the rule is evaluated and its conditions are met, one of the tile definitions within this array will be randomly selected for placement within the tile map. Each tile definitions' placement weight is taken into consideration to determine how likely each is to be selected; tile definitions with higher placement weights will be selected more frequently than those with lower placement weights.
     */
    tileDefinitions(): _NSArray;
    setTileDefinitions$(value: _NSArray): void;
    /** Client-assignable name for the tile group rule. Defaults to nil. */
    name(): _NSString | null;
    setName$(value: _NSString | null): void;
}
export interface _SKTileGroupRule extends _NSCopying, _NSSecureCoding {
}
