import { Expand } from 'arx-convert/utils';
import { Entity, EntityConstructorProps } from '../../Entity.js';
import { Variable } from '../../scripting/properties/Variable.js';
export type DoorConstructorProps = Expand<EntityConstructorProps & {
    /**
     * default value is false
     */
    isOpen?: boolean;
    /**
     * default value is false
     */
    isLocked?: boolean;
    lockpickDifficulty?: number;
}>;
export type DoorConstructorPropsWithFixSrc = Expand<Omit<DoorConstructorProps, 'src'>>;
export declare abstract class Door extends Entity {
    protected propIsOpen: Variable<boolean>;
    protected propIsUnlocked: Variable<boolean>;
    protected propLockpickability: Variable<number>;
    constructor(props: DoorConstructorProps);
    get isOpen(): boolean;
    set isOpen(value: boolean);
    get isLocked(): boolean;
    set isLocked(value: boolean);
    get lockpickDifficulty(): number;
    set lockpickDifficulty(value: number);
}
export declare class Portcullis extends Door {
    constructor(props?: DoorConstructorPropsWithFixSrc);
}
/**
 * 150 wide / 220 high
 */
export declare class LightDoor extends Door {
    protected propType: Variable<string>;
    protected propKey: Variable<string>;
    constructor(props?: DoorConstructorPropsWithFixSrc);
    setKey(key: Entity): void;
    removeKey(): void;
}
/**
 * 150 wide / 200 high
 */
export declare class CatacombHeavyDoor extends LightDoor {
    constructor(props?: DoorConstructorPropsWithFixSrc);
}
/**
 * 150 wide / 250 high
 */
export declare class YlsideDoor extends LightDoor {
    constructor(props?: DoorConstructorPropsWithFixSrc);
}
/**
 * ? wide / ? high
 */
export declare class GoblinVeryLightDoor extends LightDoor {
    constructor(props?: DoorConstructorPropsWithFixSrc);
}
