import { TextStyle_TextAlignment, Link_Target, PluginContainerData_Alignment, PluginContainerData_Width_Type, Gradient_Type } from './common.enums.js';
export interface TextStyle {
    /** Text alignment. Defaults to `AUTO`. */
    textAlignment: TextStyle_TextAlignment;
    /** A CSS `line-height` value for the text expressed as a ratio relative to the font size. For example, if the font size is 20px, a `lineHeight` value of `'1.5'`` results in a line height of 30px. */
    lineHeight?: string;
}
export declare function textStyle_TextAlignmentFromJSON(object: any): TextStyle_TextAlignment;
export declare function textStyle_TextAlignmentToJSON(object: TextStyle_TextAlignment): string;
export interface Link {
    /** The absolute URL for the linked document. */
    url: string | undefined;
    /** The target node's ID. Used for linking to another node in this object. */
    anchor: string | undefined;
    /**
     * The HTML `target` attribute value for the link. This property defines where the linked document opens as follows:
     * `SELF` - Default. Opens the linked document in the same frame as the link.
     * `BLANK` - Opens the linked document in a new browser tab or window.
     * `PARENT` - Opens the linked document in the link's parent frame.
     * `TOP` - Opens the linked document in the full body of the link's browser tab or window.
     */
    target: Link_Target;
    /** The HTML `rel` attribute value for the link. This object specifies the relationship between the current document and the linked document. */
    rel?: Link_Rel;
    /** A serialized object used for a custom or external link panel. */
    customData?: string;
}
export declare function link_TargetFromJSON(object: any): Link_Target;
export declare function link_TargetToJSON(object: Link_Target): string;
export interface Link_Rel {
    /** Indicates to search engine crawlers not to follow the link. Defaults to `false`. */
    nofollow?: boolean;
    /** Indicates to search engine crawlers that the link is a paid placement such as sponsored content or an advertisement. Defaults to `false`. */
    sponsored?: boolean;
    /** Indicates that this link is user-generated content and isn't necessarily trusted or endorsed by the page’s author. For example, a link in a fourm post. Defaults to `false`. */
    ugc?: boolean;
    /** Indicates that this link protect referral information from being passed to the target website. */
    noreferrer?: boolean;
}
export interface PluginContainerData {
    /** The width of the node when it's displayed. */
    width?: PluginContainerData_Width;
    /** The node's alignment within its container. */
    alignment: PluginContainerData_Alignment;
    /** Spoiler cover settings for the node. */
    spoiler?: PluginContainerData_Spoiler;
    /** The height of the node when it's displayed. */
    height?: PluginContainerData_Height;
    /** Sets whether text should wrap around this node when it's displayed. If `textWrap` is `false`, the node takes up the width of its container. Defaults to `true` for all node types except 'DIVIVDER' where it defaults to `false`. */
    textWrap?: boolean;
}
export declare function pluginContainerData_AlignmentFromJSON(object: any): PluginContainerData_Alignment;
export declare function pluginContainerData_AlignmentToJSON(object: PluginContainerData_Alignment): string;
export interface PluginContainerData_Spoiler {
    /** Sets whether the spoiler cover is enabled for this node. Defaults to `false`. */
    enabled?: boolean;
    /** The description displayed on top of the spoiler cover. */
    description?: string;
    /** The text for the button used to remove the spoiler cover. */
    buttonText?: string;
}
export interface PluginContainerData_Width {
    /**
     * One of the following predefined width options:
     * `CONTENT`: The width of the container matches the content width.
     * `SMALL`: A small width.
     * `ORIGINAL`: For `imageData` containers only. The width of the container matches the original image width.
     * `FULL_WIDTH`: For `imageData` containers only. The image container takes up the full width of the screen.
     */
    size: PluginContainerData_Width_Type | undefined;
    /** A custom width value in pixels. */
    custom?: string;
}
export declare function pluginContainerData_Width_TypeFromJSON(object: any): PluginContainerData_Width_Type;
export declare function pluginContainerData_Width_TypeToJSON(object: PluginContainerData_Width_Type): string;
export interface PluginContainerData_Height {
    /** A custom height value in pixels. */
    custom?: string;
}
export interface FileSource {
    /** The absolute URL for the file's source. */
    url?: string;
    /**
     * Custom ID. Use `id` instead.
     *
     * @deprecated
     */
    custom?: string;
    /** An ID that's resolved to a URL by a resolver function. */
    id?: string;
    /** Indicates whether the file's source is private. Defaults to `false`. */
    private?: boolean;
}
export interface Media {
    /** The source for the media's data. */
    src?: FileSource;
    /** Media width in pixels. */
    width?: number;
    /** Media height in pixels. */
    height?: number;
    /** Media duration in seconds. Only relevant for audio and video files. */
    duration?: number;
}
export interface PlaybackOptions {
    /** Sets whether the media will automatically start playing. */
    autoPlay?: boolean;
    /** Sets whether media's will be looped. */
    playInLoop?: boolean;
    /** Sets whether media's controls will be shown. */
    showControls?: boolean;
}
export interface Oembed {
    /** The resource type. */
    type?: string;
    /** The width of the resource specified in the `url` property in pixels. */
    width?: number;
    /** The height of the resource specified in the `url` property in pixels. */
    height?: number;
    /** Resource title. */
    title?: string;
    /** The source URL for the resource. */
    url?: string;
    /** HTML for embedding a video player. The HTML should have no padding or margins. */
    html?: string;
    /** The name of the author or owner of the resource. */
    authorName?: string;
    /** The URL for the author or owner of the resource. */
    authorUrl?: string;
    /** The name of the resource provider. */
    providerName?: string;
    /** The URL for the resource provider. */
    providerUrl?: string;
    /** The URL for a thumbnail image for the resource. If this property is defined, `thumbnailWidth` and `thumbnailHeight` must also be defined. */
    thumbnailUrl?: string;
    /** The width of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailHeight` must also be defined. */
    thumbnailWidth?: string;
    /** The height of the resource's thumbnail image. If this property is defined, `thumbnailUrl` and `thumbnailWidth`must also be defined. */
    thumbnailHeight?: string;
    /** The URL for an embedded viedo. */
    videoUrl?: string;
    /** The oEmbed version number.  This value must be `1.0`. */
    version?: string;
}
export interface Gradient {
    /** Gradient type. */
    type: Gradient_Type;
    /** Color stops for the gradient. */
    stops: Gradient_Stop[];
    /** Angle in degrees for linear gradient (0-360). */
    angle?: number;
    /** Horizontal center position for radial gradient (0-100). */
    centerX?: number;
    /** Vertical center position for radial gradient (0-100). */
    centerY?: number;
}
export declare function gradient_TypeFromJSON(object: any): Gradient_Type;
export declare function gradient_TypeToJSON(object: Gradient_Type): string;
/** A single color stop in the gradient. */
export interface Gradient_Stop {
    /** Stop color as hex value. */
    color?: string;
    /** Stop position (0-1). */
    position?: number;
}
export declare const TextStyle: {
    fromJSON(object: any): TextStyle;
    toJSON(message: TextStyle): unknown;
};
export declare const Link: {
    fromJSON(object: any): Link;
    toJSON(message: Link): unknown;
};
export declare const Link_Rel: {
    fromJSON(object: any): Link_Rel;
    toJSON(message: Link_Rel): unknown;
};
export declare const PluginContainerData: {
    fromJSON(object: any): PluginContainerData;
    toJSON(message: PluginContainerData): unknown;
};
export declare const PluginContainerData_Spoiler: {
    fromJSON(object: any): PluginContainerData_Spoiler;
    toJSON(message: PluginContainerData_Spoiler): unknown;
};
export declare const PluginContainerData_Width: {
    fromJSON(object: any): PluginContainerData_Width;
    toJSON(message: PluginContainerData_Width): unknown;
};
export declare const PluginContainerData_Height: {
    fromJSON(object: any): PluginContainerData_Height;
    toJSON(message: PluginContainerData_Height): unknown;
};
export declare const FileSource: {
    fromJSON(object: any): FileSource;
    toJSON(message: FileSource): unknown;
};
export declare const Media: {
    fromJSON(object: any): Media;
    toJSON(message: Media): unknown;
};
export declare const PlaybackOptions: {
    fromJSON(object: any): PlaybackOptions;
    toJSON(message: PlaybackOptions): unknown;
};
export declare const Oembed: {
    fromJSON(object: any): Oembed;
    toJSON(message: Oembed): unknown;
};
export declare const Gradient: {
    fromJSON(object: any): Gradient;
    toJSON(message: Gradient): unknown;
};
export declare const Gradient_Stop: {
    fromJSON(object: any): Gradient_Stop;
    toJSON(message: Gradient_Stop): unknown;
};
//# sourceMappingURL=common.d.ts.map