interface GuidelineOptions<T> {
    target: T;
    parent: T;
    orientation?: OrientationAttr;
    percent?: boolean;
    opposing?: boolean;
}

interface CloneOptions {
    attributes?: boolean;
    layout?: boolean;
    margin?: boolean;
    padding?: boolean;
    position?: boolean;
}

interface MergeGravityOptions {
    localize?: boolean;
    overwrite?: boolean;
}

interface AnchorOptions extends MergeGravityOptions {
    documentId?: string;
}

interface AnchoredOptions {
    documentId?: string;
    orientation?: OrientationAttr;
    chained?: boolean;
    parent?: boolean;
    relative?: boolean;
}

interface ParseImageOptions extends MetadataAction {
    filename?: string;
    prefix?: string;
}

interface AddImageOptions extends MetadataAction {
    prefix?: string;
    format?: MIMEOrAll;
}

interface AddColorOptions extends NodeParseColorOptions {
    prefix?: string;
    ignoreSystemColors?: boolean;
}

interface AddStringOptions extends Omit<OptionArrayData, "items"> {
    isText?: boolean;
    translatable?: boolean;
}

interface AddThemeOptions extends Partial<LocationUri>, AddColorOptions {}

interface AddArrayOptions {
    type?: number;
    translatable?: boolean;
    encoding?: XmlEncoding;
    formatString?: (value: string) => string;
}

interface ReplaceCharacterDataOptions {
    tab?: number;
    inline?: boolean;
    encoding?: XmlEncoding;
    outputEncoding?: XmlEncoding;
}