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 } from '../../internal/types';
import { FoxInputBlockElement } from '../../internal/interfaces/input-elements.interfaces';
import { FoxButton } from '../../internal/interfaces/section-elements.interfaces';
import { BlockVisibleIfRef } from '../../internal/types/visible-if.types';
export declare class ModalBlockRdo implements SlackBlockDto, FoxBlock {
    type: BlockType;
    block_id: string;
    /** Видимость по командам */
    [Prop.ForTeams]?: string[];
    /** Видимость по внутренним группам */
    [Prop.Access]?: string | undefined;
    /** Отключение отправки при видимом блоке */
    [Prop.NoSubmit]?: boolean;
    [Prop.VisibleIf]?: BlockVisibleIfRef[];
}
export declare class IInputBlockFoxFields {
    [Prop.GetValue]?: boolean;
    [Prop.Exclude]?: boolean;
    [Prop.Analytics]?: AnalyticsParams;
    [Prop.AsTitle]?: boolean;
}
export declare class InputBlockFoxFields extends ModalBlockRdo implements IInputBlockFoxFields {
    /** Custom поле планфикса */
    customField?: number | false;
    /** Флаг получения значений вместо текста */
    getValue?: boolean;
    exclude?: boolean;
    analytics?: AnalyticsParams;
    asTitle?: boolean;
}
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;
}
