import { IBlockState, IButtonBlockOptions, IDividerBlockOptions, IImageBLockOptions, ISocialBlockOptions, ISocialNetwork, ISpacerBlockOptions, ITextBlockOptions } from '../interfaces/interfaces'; export declare type TBlocksOptions = ITextBlockOptions | IImageBLockOptions | IButtonBlockOptions | IDividerBlockOptions | ISpacerBlockOptions | ISocialBlockOptions; export declare abstract class AIPBlock { readonly type: string; readonly icon: string; abstract readonly title: string; options: TBlocksOptions; state: IBlockState; } export declare class TextBlock implements AIPBlock { innerText?: string; state: IBlockState; readonly type = "text"; readonly icon = "text_format"; options: ITextBlockOptions; title: string; constructor(innerText?: string, options?: ITextBlockOptions, state?: IBlockState); } export declare class ImageBlock implements AIPBlock { src: string; state: IBlockState; readonly type = "image"; readonly icon = "image"; options: IImageBLockOptions; title: string; constructor(src?: string, options?: IImageBLockOptions, state?: IBlockState); } export declare class ButtonBlock implements AIPBlock { innerText: string; state: IBlockState; readonly type = "button"; readonly icon = "radio_button_checked"; options: IButtonBlockOptions; title: string; constructor(innerText?: string, options?: IButtonBlockOptions, state?: IBlockState); } export declare class DividerBlock implements AIPBlock { state: IBlockState; readonly type = "divider"; readonly icon = "remove"; options: IDividerBlockOptions; title: string; constructor(options?: IDividerBlockOptions, state?: IBlockState); } export declare class SpacerBlock implements AIPBlock { state: IBlockState; readonly type = "spacer"; readonly icon = "vertical_align_center"; title: string; options: ISpacerBlockOptions; constructor(options?: ISpacerBlockOptions, state?: IBlockState); } export declare class SocialBlock implements AIPBlock { networks: ISocialNetwork[]; state: IBlockState; readonly type = "social"; readonly icon = "share"; title: string; options: ISocialBlockOptions; constructor(networks?: ISocialNetwork[], options?: ISocialBlockOptions, state?: IBlockState); } export declare type TBlocks = TextBlock | ImageBlock | ButtonBlock | DividerBlock | SpacerBlock | SocialBlock;