import { ObjectInfo } from './object-info.mjs';
import { ObjectLabel } from './object-label.mjs';
import { Placement } from './placement.mjs';
import { Target } from './target.mjs';
import './edition.mjs';
import './issue.mjs';
import './pub-channel.mjs';

declare enum RelationType {
    Contained = "Contained",
    Placed = "Placed",
    DeletedContained = "DeletedContained"
}
declare class Relation {
    __classname__: string;
    Parent: string | null;
    Child: string | null;
    Type: RelationType | null;
    Placements: Placement[] | null;
    ParentVersion: string | null;
    ChildVersion: string | null;
    Rating: number | null;
    Targets: Target[] | null;
    ParentInfo: ObjectInfo | null;
    ChildInfo: ObjectInfo | null;
    ObjectLabels: ObjectLabel[] | null;
    constructor(params: RelationNamedParameters);
}
interface RelationNamedParameters {
    Parent: string;
    Child: string;
    Type: RelationType;
    Placements?: Placement[];
    ParentVersion?: string;
    ChildVersion?: string;
    Rating?: number;
    Targets?: Target[];
    ParentInfo?: ObjectInfo;
    ChildInfo?: ObjectInfo;
    ObjectLabels?: ObjectLabel[];
}

export { Relation, type RelationNamedParameters, RelationType };
