import { SlackBlockDto } from '../../internal/dto';
import { BlockType, Prop } from '../../internal/constants';
import { PlainTextObject } from '../../internal/objects';
import { FoxBlock, FoxDividerBlock, FoxHeaderBlock, FoxInputBlock, FoxSectionBlock } from '../../internal/interfaces/blocks.interfaces';
import { PlainTextElement } from '@slack/web-api';
import { AnalyticsParams, OnChangeParams } from '../../internal/types';
import { FoxInputBlockElement } from '../../internal/interfaces/input-elements.interfaces';
import { FoxButton } from '../../internal/interfaces/section-elements.interfaces';
export declare class ModalBlockRdo implements SlackBlockDto, FoxBlock {
    type: BlockType;
    block_id?: string;
    /** Видимость по командам */
    forTeams?: string[];
    access?: string | undefined;
}
export declare class IInputBlockFoxFields {
    [Prop.GetValue]?: boolean;
    [Prop.Exclude]?: boolean;
    [Prop.Analytics]?: AnalyticsParams;
    [Prop.AsTitle]?: boolean;
    [Prop.OnChange]?: OnChangeParams;
}
export declare class InputBlockFoxFields extends ModalBlockRdo implements IInputBlockFoxFields {
    /** Custom поле планфикса */
    customField?: number | false;
    /** Флаг получения значений вместо текста */
    getValue?: boolean;
    exclude?: boolean;
    analytics?: AnalyticsParams;
    asTitle?: boolean;
    onChange?: OnChangeParams;
}
export declare class InputBlockRdo extends InputBlockFoxFields implements FoxInputBlock {
    type: BlockType.Input;
    block_id?: string;
    label: PlainTextObject;
    hint?: PlainTextObject;
    optional?: boolean;
    element: FoxInputBlockElement;
}
export declare class SectionBlockRdo extends ModalBlockRdo implements FoxSectionBlock {
    type: BlockType.Section;
    block_id?: string;
    text?: PlainTextObject;
    fields?: PlainTextObject[];
    accessory?: FoxButton;
}
export declare class DividerBlockRdo extends ModalBlockRdo implements FoxDividerBlock {
    type: BlockType.Divider;
}
export declare class HeaderBlockRdo extends ModalBlockRdo implements FoxHeaderBlock {
    type: BlockType.Header;
    text: PlainTextElement;
}
