import { Stamp } from '@procore/labs-markup-toolbars/src/menus/Stamp/stampTypes';
import { ExternalMarkupType, ToolbarsMarkupElement } from '@procore/labs-markup-toolbars';
import { ViewerPluginProps } from '../../shared/BasePluginTypes';
export declare type UniqueUserKey = string;
export interface PusherData {
    channel_name: string;
    key: string;
    auth_url: string;
}
export interface AnalyticsProperties {
    attachment_id: ViewerPluginProps['attachmentId'];
    markup_domain: string;
    file_type: string;
    item_id: string | null;
    item_type: string | null;
}
export interface BallInCourtUser {
    id: number;
    name: string;
    initials: string;
    vendor_name: string;
}
export interface ViewPolicyRules {
    visible: Boolean;
    editable: Boolean;
    required: Boolean;
}
export declare enum ViewPolicyKeys {
    actual_delivery_date = 0,
    anticipated_delivery_date = 1,
    confirmed_delivery_date = 2,
    cost_code_id = 3,
    custom_textarea_1 = 4,
    custom_textfield_1 = 5,
    description = 6,
    design_team_review_time = 7,
    distribution_member_ids = 8,
    due_date = 9,
    internal_review_time = 10,
    issue_date = 11,
    lead_time = 12,
    location_id = 13,
    number = 14,
    planned_internal_review_completed_date = 15,
    planned_return_date = 16,
    planned_submit_by = 17,
    private = 18,
    prostore_file_ids = 19,
    received_date = 20,
    received_from_id = 21,
    required_on_site_date = 22,
    responsible_contractor_id = 23,
    specification_section_id = 24,
    sub_job_id = 25,
    submit_by = 26,
    submittal_log_status_id = 27,
    submittal_manager_id = 28,
    submittal_package_id = 29,
    submittal_type = 30,
    task_id = 31,
    title = 32
}
export interface SubmittalCoverPageData {
    company_name: string;
    office_address: string;
    office_phone: string;
    project_name: string;
    project_address: string;
    project_logo_url: string;
    project_phone: string;
    submittal_title: string;
    submittal_revision: string;
    submittal_number: string;
    submittal_type: string;
    submittal_manager: string;
    submittal_description: string;
    specification_section_title: string;
}
export interface SubmittalInfo {
    attached_at: string;
    markup_updated_at: string;
    specification_section_title: string;
    specification_sections_url: string;
    submittal_description: string;
    submittal_number: string;
    submittal_revision: string;
    submittal_status: string;
    submittal_title: string;
    submittal_type: string;
}
export interface SubmittalAPIResponse {
    cover_page_data: SubmittalCoverPageData;
    submittal_info: SubmittalInfo;
    stamps: Stamp[];
    ball_in_court: BallInCourtUser[];
    permissions: {
        can_add_additional_page: boolean;
        can_rename_documents: boolean;
        can_markup_document: boolean;
        markup_supported: boolean;
    };
    view_policy: {
        fields: Record<keyof typeof ViewPolicyKeys, ViewPolicyRules>;
    };
    view_policy_key_mapping: {
        specification_section_title: keyof typeof ViewPolicyKeys;
        submittal_description: keyof typeof ViewPolicyKeys;
        submittal_manager: keyof typeof ViewPolicyKeys;
        submittal_number: keyof typeof ViewPolicyKeys;
        submittal_status_id: keyof typeof ViewPolicyKeys;
        submittal_title: keyof typeof ViewPolicyKeys;
        submittal_type: keyof typeof ViewPolicyKeys;
    };
    urls: {
        return: string;
        stamps: {
            create: string;
        };
    };
}
export interface MarkupElement {
    id: number;
    editable: boolean;
    created_at: string;
    created_by_id: number | string;
    created_by_name: string;
    created_by_vendor_name: string;
    document_markup_page_id: number;
    document_markup_layer_id: number;
    shape: ToolbarsMarkupElement['shape'];
    svg: string;
    tool_name: ExternalMarkupType;
    type: ExternalMarkupType;
    updated_at: string;
}
