import { MapNumberTo, MapStringTo, Nullable, Object_Unknown } from "../../../base-types";
import { IContentHubClient } from "../../../clients/content-hub-client";
import { IParentRelation, RelationBase } from "../relation";
import { RelationRole } from "../relation-role";
import { IToOneRelation } from "./to-one-relation";
/**
 * A relation where the parent has one child.
 */
export interface IParentToOneChildRelation extends IParentRelation, IToOneRelation {
    /**
     * The child id.
     */
    child: Nullable<number>;
    /**
     * Gets the properties for a child.
     *
     * If no properties are found, an empty list is returned.
     */
    getChildProperties(): MapStringTo<Object_Unknown>;
}
export declare class ParentToOneChildRelation extends RelationBase implements IParentToOneChildRelation {
    private _child;
    readonly role: RelationRole;
    readonly isMultiValue: boolean;
    get child(): Nullable<number>;
    set child(id: Nullable<number>);
    get isDirty(): boolean;
    constructor(name: string, properties?: Nullable<MapNumberTo<MapStringTo<Object_Unknown>>>, client?: IContentHubClient);
    getIds(): Array<number>;
    setIds(ids: Array<number>): void;
    setIdentifierAsync(identifier: Nullable<string>): Promise<void>;
    clear(): void;
    getId(): Nullable<number>;
    setId(id: Nullable<number>): void;
    startTracking(): void;
    markClean(): void;
    getChildProperties(): MapStringTo<Object_Unknown>;
}
