export declare namespace Typeform {
    /**
     * Object that defines the Logic Jump's behavior.
     */
    export interface Action {
        /**
         * Behavior the Logic Jump will take.
         */
        action?: 'jump' | 'add' | 'subtract' | 'multiply' | 'divide';
        /**
         * Properties that further specify how the Logic Jump will behave.
         */
        details?: ActionDetails;
        /**
         * Conditions for executing the Logic Jump. Conditions answer the question, "Under what circumstances?"
         * The condition object is the IF statement in your Logic Jump.
         */
        condition?: Condition | AndOrOperator;
    }
    /**
     * Properties that further specify how the Logic Jump will behave.
     */
    export interface ActionDetails {
        /**
         * Specifies where the Logic Jump leads---to another field ("field"), a Hidden Field ("hidden"), or thank you screen ("thankyou").
         */
        to?: {
            /**
             * Logic Jump "to" option you are using.
             */
            type?: 'field' | 'hidden' | 'thankyou';
            /**
             * The "ref" value for the field, Hidden Field, or thank you screen the Logic Jump leads to.
             */
            value?: string;
        };
        /**
         * Keeps a running total for the `score` or `price` variable.
         */
        target?: {
            /**
             * Specifies that the value is a variable.
             */
            type?: 'variable';
            /**
             * Variable value to use in calculation.
             */
            value?: 'score' | 'price';
        };
        /**
         * Specifies the numeric value to use in the calculation for the `score` or `price` variable.
         */
        value?: {
            /**
             * Specifies that the numeric value is a constant.
             */
            type?: 'constant';
            /**
             * Numeric value to use in calculation.
             */
            value?: number;
        };
    }
    export namespace API {
        namespace Forms {
            interface List {
                total_items: number;
                page_count: number;
                items: {
                    id: string;
                    type: string;
                    title: string;
                    last_updated_at: string;
                    created_at: string;
                    settings: {};
                    self: {
                        href: string;
                    };
                    theme: {
                        href: string;
                    };
                    _links: {
                        display: string;
                        responses: string;
                    };
                }[];
            }
        }
        namespace Responses {
            interface List {
                total_items: number;
                page_count: number;
                items: Response[];
            }
        }
        namespace Themes {
            interface List {
                total_items: number;
                page_count: number;
                items: Theme[];
            }
        }
        namespace Webhooks {
            interface List {
                items: Webhook[];
            }
        }
        namespace Workspaces {
            interface List {
                total_items: number;
                page_count: number;
                items: Workspace[];
            }
        }
        interface PATCH {
            op: string;
            path: string;
            value: any;
        }
    }
    /**
     * Base URL of Typeform API.
     */
    export type API_URL = 'https://api.typeform.com';
    /**
     * Attachment to include as image, video, or `picture_choice`.
     */
    export interface Attachment {
        /**
         * Type of attachment.
         */
        type?: 'image' | 'video';
        /**
         * URL for the image or video you want to display.
         * Images must already exist in your account---use the image's Typeform URL, such as `"https://images.typeform.com/images/kbn8tc98AHb"`.
         * For videos, use the video's YouTube.com URL.
         */
        href?: string;
        /**
         * Optional parameter for responsively scaling videos. Available only for `"video"` type. Default value is 0.6
         */
        scale?: 0.4 | 0.6 | 0.8 | 1;
    }
    /**
     * Choice answer for a properties's choices property of a field.
     */
    export interface Choice {
        /**
         * Readable name you can use to reference the answer choice. Available for `multiple_choice` and `picture_choice` types.
         * Not available for dropdown types.
         */
        ref?: string;
        /**
         * Text for the answer choice.
         */
        label?: string;
        /**
         * Identifies the image to use for the answer choice. Available only for `picture_choice` types.
         */
        attachment?: Attachment;
    }
    /**
     * Argument object for Typeform API client
     */
    export interface ClientArg extends DocumentData {
        token?: string;
    }
    /**
     * Conditions for executing the Logic Jump. Conditions answer the question, "Under what circumstances?"
     * The condition object is the IF statement in your Logic Jump.
     */
    export interface Condition {
        /**
         * Operator for the condition.
         */
        op?: 'begins_with' | 'ends_with' | 'contains' | 'not_contains' | 'lower_than' | 'lower_equal_than' | 'greater_than' | 'greater_equal_than' | 'is' | 'is_not' | 'equal' | 'not_equal' | 'always' | 'on' | 'not_on' | 'earlier_than' | 'earlier_than_or_on' | 'later_than' | 'later_than_or_on';
        /**
         * Object that defines the field type and value to evaluate with the operator.
         */
        vars?: {
            /**
             * Type of value the condition object refers to.
             */
            type?: 'field' | 'hidden' | 'variable' | 'constant' | 'end' | 'choice';
            /**
             * Value to check for in the "type" field to evaluate with the operator.
             */
            value?: any;
        }[];
    }
    /**
     * Conditions for a logic jump can be combined using the `and` and `or` operators
     */
    export interface AndOrOperator {
        /**
         * Operator for the condition.
         */
        op?: 'and' | 'or';
        /**
         * Object that defines the field type and value to evaluate with the operator.
         */
        vars: Array<AndOrOperator | Condition>;
    }
    /**
     * Generic document.
     */
    export interface DocumentData {
        [key: string]: any;
    }
    /**
     * Object that represents a field in the form and its properties, validations, and attachments.
     */
    export interface Field {
        /**
         * The unique ID for the question.
         */
        id?: string;
        /**
         * Readable name you can use to reference the field.
         */
        ref?: string;
        /**
         * Unique name you assign to the field on this form.
         */
        title?: string;
        /**
         * The type of field.
         */
        type?: Type;
        /**
         * Properties of a field.
         */
        properties?: Properties.Field;
        /**
         * Validations of a field.
         */
        validations?: Validations;
        /**
         * Attachment of a field.
         */
        attachment?: Attachment;
    }
    /**
     * Font for the theme.
     */
    export type Font = 'Acme' | 'Arial' | 'Arvo' | 'Avenir Next' | 'Bangers' | 'Cabin' | 'Cabin Condensed' | 'Courier' | 'Crete Round' | 'Dancing Script' | 'Exo' | 'Georgia' | 'Handlee' | 'Helvetica Neue' | 'Karla' | 'Lato' | 'Lekton' | 'Lobster' | 'Lora' | 'McLaren' | 'Montserrat' | 'Nixie One' | 'Old Standard TT' | 'Open Sans' | 'Oswald' | 'Playfair Display' | 'Quicksand' | 'Raleway' | 'Signika' | 'Sniglet' | 'Source Sans Pro' | 'Vollkorn';
    export interface Form {
        /**
         * ID of a form.
         */
        id?: string;
        /**
         * Title to use for the form.
         */
        title?: string;
        /**
         * Language to present a form.
         */
        language?: Language;
        /**
         * Array of objects that specify the fields to use in the form and their properties, validations, and attachments.
         */
        fields?: Field[];
        /**
         * Default: `""`
         * Array of Hidden Fields to use in the form.
         */
        hidden?: string[];
        /**
         * Array of objects that specify settings and properties for the form's welcome screen.
         */
        welcome_screens?: WelcomeScreen[];
        /**
         * Array of objects that specify settings and properties for the form's thank you screen.
         */
        thankyou_screens?: ThankYouScreen[];
        /**
         * Array of Logic Jump objects to use in the form.
         */
        logic?: Logic[];
        /**
         * Theme to use for the form.
         * Treat as string when creating a form/
         */
        theme?: {
            /**
             * URL of the theme to use for the typeform.
             * If you don't specify a URL for the theme, Typeform applies a new copy of the default theme to the form.
             */
            href?: string;
        } | string;
        /**
         * Workspace that contains the form.
         */
        workspace?: {
            /**
             * URL of the workspace to use for the typeform.
             * If you don't specify a URL for the workspace, Typeform saves the form in the default workspace.
             */
            href?: string;
        };
        /**
         * Only available when retrieving a form.
         */
        _links?: {
            display?: string;
        };
        /**
         * Object that specifies form settings and metadata, including the language to use for the form,
         * whether the form is publicly available, the basis for the progress bar, and search engine indexing settings.
         */
        settings?: Settings;
        /**
         * Object that keeps track of total score or price, if you use them in the form.
         * Not available when retrieving a form.
         */
        variables?: {
            /**
             * Recall Information for keeping score as users answer each question (for example, for quizzes).
             */
            score?: 0;
            /**
             * Recall Information for tracking the total price of all items users select
             * (for example, for shopping carts, donation campaigns, and payment collections).
             */
            price?: number;
        };
    }
    /**
     * HTTP Client for API requests.
     */
    export interface HTTPClient {
        request: (args: Request) => Promise<any>;
    }
    /**
     * Typeform Image object.
     */
    export interface Image {
        /**
         * Unique ID for the image.
         */
        id?: string;
        /**
         * URL for the image.
         */
        src?: string;
        /**
         * File name for the image (specified when image is created).
         */
        file_name?: string;
        /**
         * Width of the image in pixels.
         */
        width?: number;
        /**
         * Height of the image in pixels.
         */
        height?: number;
        /**
         * The MIME type of the image.
         */
        media_type?: 'image/gif' | 'image/jpeg' | 'image/png';
        /**
         * True if image has alpha channel (some degree of transparency). Otherwise, false.
         */
        has_alpha?: boolean;
        /**
         * Average color of the image in hexadecimal format.
         */
        avg_color?: string;
    }
    /**
     * Language that Typeform can be in.
     */
    export type Language = 'en' | 'es' | 'ca' | 'fr' | 'de' | 'ru' | 'it' | 'da' | 'pt' | 'ch' | 'zh' | 'nl' | 'no' | 'uk' | 'ja' | 'ko' | 'hr' | 'fi' | 'sv' | 'pl' | 'el' | 'hu' | 'tr' | 'cs' | 'et' | 'di';
    /**
     * Logic object of a form.
     */
    export interface Logic {
        /**
         * Specifies whether the Logic Jump is based on a question field or Hidden Field.
         */
        type?: 'field' | 'hidden';
        /**
         * Reference to the field that triggers the the Logic Jump.
         */
        ref?: string;
        /**
         * Array of objects that define the Logic Jump's behavior.
         */
        actions?: Action[];
    }
    /**
     * Messages that forms can use.
     */
    export interface Messages {
        /**
         * Default tooltip button message. Maximum 28 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.buttonHint.default'?: string;
        /**
         * Tooltip button message for long text blocks. Maximum 28 characters.
         * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.buttonHint.longtext'?: string;
        /**
         * Server connection error message. Maximum 128 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden
         */
        'label.warning.connection'?: string;
        /**
         * Default continue button message. Maximum 100 characters.
         */
        'label.buttonNoAnswer.default'?: string;
        /**
         * List of errors message. Maximum 128 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.warning.correction'?: string;
        /**
         * Credit card name message. You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'block.payment.cardNameTitle'?: string;
        /**
         * Credit card number message. You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'block.payment.cardNumberTitle'?: string;
        /**
         * Credit card security number message
         */
        'block.payment.cvcDescription'?: string;
        /**
         * Credit card CVC number message. You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'block.payment.cvcNumberTitle'?: string;
        /**
         * Text input placeholder. Maximum 100 characters.
         */
        'block.shortText.placeholder'?: string;
        /**
         * Invalid email error message. Maximum 64 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.error.emailAddress'?: string;
        /**
         * Credit card expiry month message. You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.error.expiryMonthTitle'?: string;
        /**
         * Credit card expiry year message. You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.error.expiryYearTitle'?: string;
        /**
         * Fallback alert message. You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.warning.fallbackAlert'?: string;
        /**
         * File upload button message. Maximum 34 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'block.fileUpload.choose'?: string;
        /**
         * File upload dragging action message. Maximum 35 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'block.fileUpload.drag'?: string;
        /**
         * Still processing file upload message. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'block.fileUpload.uploadingProgress'?: string;
        /**
         * File too big error message. You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.error.sizeLimit'?: string;
        /**
         * Private form error message. Accepts variable form:name. Maximum 128 characters.
         * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.warning.formUnavailable'?: string;
        /**
         * Incomplete fields error message. Maximum 42 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.error.incompleteForm'?: string;
        /**
         * Key letter hint message. Maximum 100 characters.
         */
        'label.hint.key'?: string;
        /**
         * Legal field deny message. You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'block.legal.reject'?: string;
        /**
         * Legal field accept message. You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'block.legal.accept'?: string;
        /**
         * Number maximum value tooltip message. Accepts variable `field:max`. Maximum 64 characters.
         * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.error.maxValue'?: string;
        /**
         * Text fields maximum length tooltip message. Accepts variable `field:max_length`. Maximum 64 characters.
         * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.error.maxLength'?: string;
        /**
         * Number minimum value tooltip message. Accepts variable `field:min`. Maximum 64 characters.
         * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.error.minValue'?: string;
        /**
         * Number minimum and maximum range value tooltip message. Accepts variables `field:min` and `field:max`. Maximum 64 characters.
         * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.error.range'?: string;
        /**
         * Choose as many as you like message for multiple choice fields. Maximum 45 characters.
         * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'block.multipleChoice.hint'?: string;
        /**
         * Required value error message. Maximum 64 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.error.mustEnter'?: string;
        /**
         * Required selection error message. Maximum 64 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.error.mustSelect'?: string;
        /**
         * Keyboard shortcut for the "No" option. Maximum 1 character.
         */
        'label.no.shortcut'?: string;
        /**
         * Representation for the word "No." You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.no.default'?: string;
        /**
         * Not suggestions found for dropdown fields error message. Maximum 64 characters.
         * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'block.dropdown.hint'?: string;
        /**
         * Other answer message. Maximum 100 characters.
         */
        'block.multipleChoice.other'?: string;
        /**
         * Completion percentage message. Accepts variable `progress:percent`. Maximum 100 characters.
         */
        'label.progress.percent'?: string;
        /**
         * Completion proportion message. Accepts variables `progress:step` and `progress:total`. Maximum 100 characters.
         */
        'label.progress.proportion'?: string;
        /**
         * Required field error message. Maximum 64 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.error.required'?: string;
        /**
         * Review fields error message. Accepts variable `form:unanswered_fields`. Maximum 64 characters.
         * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.preview'?: string;
        /**
         * Review button message. Maximum 100 characters.
         */
        'label.button.review'?: string;
        /**
         * Server error message. Maximum 128 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.error.server'?: string;
        /**
         * Share text message. Maximum 100 characters.
         */
        'label.action.share'?: string;
        /**
         * Submit button message. Maximum 100 characters.
         */
        'label.button.submit'?: string;
        /**
         * Successful submit message. Maximum 128 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.warning.success'?: string;
        /**
         * Answer confirm. Maximum 100 characters.
         */
        'label.button.ok'?: string;
        /**
         * Legal field terms and conditions message. Maximum 64 characters.
         * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.error.mustAccept'?: string;
        /**
         * Long text field tooltip message. Maximum 128 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'block.longtext.hint'?: string;
        /**
         * Placeholder message with instructions for dropdown fields. Maximum 100 characters.
         */
        'block.dropdown.placeholder'?: string;
        /**
         * Placeholder message with instructions for dropdown fields on touch devices. Maximum 100 characters.
         */
        'block.dropdown.placeholderTouch'?: string;
        /**
         * Invalid URL error message. Maximum 64 characters. You can format messages with bold (`*bold*`) and italic (`_italic_`) text.
         * HTML tags are forbidden.
         */
        'label.error.url'?: string;
        /**
         * Keyboard shortcut for the "Yes" option. Maximum 1 character.
         */
        'label.yes.shortcut'?: string;
        /**
         * Representation for the word "Yes". You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
         */
        'label.yes.default'?: string;
    }
    /**
     * Notification object.
     */
    export interface Notification {
        /**
         * Settings for notifications sent when respondents complete and submit the typeform.
         */
        self?: {
            /**
             * Default: `""`
             * true to send notifications. false to disable notifications.
             */
            enabled?: boolean;
            recipients?: string[];
            /**
             * Email address to use for notification Reply-To.
             * Must be a Recall Information value based on respondent's answer to a field: {{field:ref}} or {{hidden:ref}}.
             */
            reply_to?: string;
            /**
             * Subject to use for the notification email. Can combine text and Recall Information value from one or more fields.
             * Available Recall Information values are {{form:title}}, {{account:email}}, {{account:name}}, {{link:report}},
             * and standard Recall Information for fields {{field:ref}} and hidden fields {{hidden:ref}}.
             */
            subject?: string;
            /**
             * Message to include in the body of the notification email. Can combine text and Recall Information value from one or more fields.
             * Available Recall Information values are {{form:title}}, {{account:email}}, {{account:name}}, {{link:report}},
             * {{form:all_answers}}, and standard Recall Information for fields {{field:ref}} and hidden fields {{hidden:ref}}.
             * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
             */
            message?: string;
        };
        /**
         * Settings for notifications sent to respondents immediately after submitting the typeform
         */
        respondent?: {
            /**
             * Default: `""`
             * true to send respondent notifications. false to disable respondent notifications.
             */
            enabled?: boolean;
            /**
             * Email where respondent notification will be sent.
             * Must be a Recall Information value based on respondent's answer to a field: {{field:ref}} or {{hidden:ref}}.
             */
            recipient?: string;
            reply_to?: string[];
            /**
             * Subject to use for the notification email. Can combine text and Recall Information value from one or more fields.
             * Available Recall Information values are {{form:title}}, {{account:fullname}}, {{account:email}}, {{account:name}},
             * {{link:report}}, and standard Recall Information for fields {{field:ref}} and hidden fields {{hidden:ref}}.
             */
            subject?: string;
            /**
             * Message to include in the body of the notification email. Can combine text and Recall Information value from one or more fields.
             * Available Recall Information values are {{form:title}}, {{account:fullname}}, {{account:email}}, {{account:name}},
             * {{link:report}}, {{form:all_answers}}, and standard Recall Information for fields {{field:ref}} and hidden fields {{hidden:ref}}.
             * You can format messages with bold (`*bold*`) and italic (`_italic_`) text. HTML tags are forbidden.
             */
            message?: string;
        };
    }
    /**
     * Properties object.
     */
    export namespace Properties {
        interface Field {
            /**
             * Question or instruction to display for the field.
             */
            description?: string;
            /**
             * Answer choices. Available for `dropdown`, `multiple_choice`, and `picture_choice` types.
             */
            choices?: Choice[];
            /**
             * Contains the fields that belong in a question group. Only `payment` and `group` blocks are not allowed inside a question group.
             * Available for the `group` type.
             */
            fields?: any[];
            /**
             * true to allow respondents to select more than one answer choice. false to allow respondents to select only one answer choice.
             * Available for `multiple_choice` and `picture_choice` types.
             */
            allow_multiple_selection?: boolean;
            /**
             * true if answer choices should be presented in a new random order for each respondent.
             * false if answer choices should be presented in the same order for each respondent.
             * Available for `multiple_choice` and `picture_choice` types.
             */
            randomize?: boolean;
            /**
             * true to include an "Other" option so respondents can enter a different answer choice from those listed.
             * false to limit answer choices to those listed.
             * Available for `multiple_choice` and `picture_choice` types.
             */
            allow_other_choice?: boolean;
            /**
             * true to list answer choices vertically. false to list answer choices horizontally.
             * Available for `multiple_choice` types.
             */
            vertical_alignment?: boolean;
            /**
             * true if you want to use larger-sized images for answer choices. Otherwise, false. Available for `picture_choice` types.
             */
            supersized?: boolean;
            /**
             * Default: `""`
             * true to show text labels and images as answer choices. false to show only images as answer choices.
             * Available for `picture_choice` types.
             */
            show_labels?: boolean;
            /**
             * true if question should list dropdown answer choices in alphabetical order.
             * false if question should list dropdown answer choices in the order they're listed in the "choices" array.
             * Available for `dropdown` types.
             */
            alphabetical_order?: boolean;
            /**
             * true if you want to display quotation marks around the statement on the form. Otherwise, false. Available for statement types.
             */
            hide_marks?: boolean;
            /**
             * Default: `"Continue"`
             * Text to display in the button associated with the object. Available for `group`, `payment`, and `statement` types.
             */
            button_text?: string;
            /**
             * Number of steps in the scale's range. Minimum is 5 and maximum is 11. Available for `opinion_scale` and `rating` types.
             */
            steps?: 5 | 6 | 7 | 8 | 9 | 10 | 11;
            /**
             * Default: `"star"`
             * Shape to display on the scale's steps. Available for `opinion_scale` and `rating` types.
             */
            shape?: 'cat' | 'circle' | 'cloud' | 'crown' | 'dog' | 'droplet' | 'flag' | 'heart' | 'lightbulb' | 'pencil' | 'skull' | 'star' | 'thunderbolt' | 'tick' | 'trophy' | 'up' | 'user';
            /**
             * Label to help respondents understand the scale's range. Available for `opinion_scale` and `rating` types.
             */
            labels?: {
                /**
                 * Text of the left-aligned label for the scale.
                 */
                left?: string;
                /**
                 * Text of the right-aligned label for the scale.
                 */
                right?: string;
                /**
                 * Text of the center-aligned label for the scale.
                 */
                center?: string;
            };
            /**
             * true if range numbering should start at 1. false if range numbering should start at 0. Available for `opinion_scale` types.
             */
            start_at_one?: boolean;
            /**
             * Default: `"DDMMYYYY"`
             * Format for month, date, and year in answer. Available for `date` types.
             */
            structure?: 'MMDDYYYY' | 'DDMMYYYY' | 'YYYYMMDD';
            /**
             * Default: `"/"`
             * Character to use between month, day, and year in answer. Available for `date` types.
             */
            separator?: '/' | '-' | '.';
            currency?: 'AUD' | 'BRL' | 'CAD' | 'CHF' | 'DKK' | 'EUR' | 'GBP' | 'MXN' | 'NOK' | 'SEK' | 'USD';
        }
        interface ThankYouScreen {
            /**
             * true to display a 'Submit' button on the thank you screen. Otherwise, false.
             */
            show_button?: boolean;
            /**
             * Text to display on the 'Submit' button on the thank you screen.
             */
            button_text?: string;
            /**
             * Specify whether the form should reload or redirect to another URL when respondents click the 'Submit' button. PRO+ feature.
             */
            button_mode?: 'reload' | 'redirect';
            /**
             * URL where the typeform should redirect after submission, if you specified "redirect" for `button_mode`.
             */
            redirect_url?: string;
            /**
             * true to display social media sharing icons on the thank you screen so respondents can post your typeform's link on Facebook,
             * Twitter, LinkedIn, and Google+. Otherwise, false.
             */
            share_icons?: boolean;
        }
        interface WelcomeScreen {
            /**
             * Description of the welcome screen.
             */
            description?: string;
            /**
             * true to display a 'Start' button on the welcome screen. Otherwise, false.
             */
            show_button?: boolean;
            /**
             * Text to display on the 'Start' button on the welcome screen.
             */
            button_text?: string;
        }
    }
    /**
     * Typeform request object.
     */
    export interface Request extends DocumentData {
        url: string;
        method: string;
        data?: DocumentData;
        argsHeaders?: DocumentData;
        params?: DocumentData;
    }
    /**
     * Form response and date and time of form landing and submission.
     */
    export interface Response {
        /**
         * Unique ID for the response. Note that `response_id` values are unique per form but are not unique globally.
         */
        response_id?: string;
        /**
         * Time of the form landing. In ISO 8601 format, UTC time, to the second, with T as a delimiter between the date and time.
         */
        landed_at?: string;
        /**
         * Time that the form response was submitted. In ISO 8601 format, UTC time, to the second, with T as a delimiter between the date and time.
         */
        submitted_at?: string;
        /**
         * Metadata about a client's HTTP request.
         */
        metadata?: {
            user_agent?: string;
            /**
             * Derived from user agent
             */
            platform?: string;
            referer?: string;
            /**
             * Ip of the client
             */
            network_id?: string;
        };
        hidden?: DocumentData;
        /**
         * Subset of a complete form definition to be included with a submission.
         */
        definition?: {
            fields?: {
                id?: string;
                type?: string;
                title?: string;
                description?: string;
            }[];
        };
        answers?: {
            field?: {
                /**
                 * The unique id of the form field the answer refers to.
                 */
                id?: string;
                /**
                 * The field's type in the original form.
                 */
                type?: string;
                /**
                 * The reference for the question the answer relates to. Use the `ref` value to match answers with questions.
                 * The Responses payload only includes `ref` for the fields where you specified them when you created the form.
                 */
                ref?: string;
                /**
                 * The form field's title which the answer is related to.
                 */
                title?: string;
            };
            /**
             * The answer-field's type.
             */
            type?: 'choice' | 'choices' | 'date' | 'email' | 'url' | 'file_url' | 'number' | 'boolean' | 'text' | 'payment';
            /**
             * Represents single choice answers for dropdown-like fields.
             */
            choice?: {
                label?: string;
                other?: string;
            };
            /**
             * Represents multiple choice answers.
             */
            choices?: {
                labels?: string[];
                other?: string;
            };
            date?: string;
            email?: string;
            file_url?: string;
            number?: number;
            boolean?: boolean;
            text?: string;
            url?: string;
            payment?: {
                amount?: string;
                last4?: string;
                name?: string;
            };
        }[];
        calculated?: {
            score?: number;
        };
    }
    /**
     * Typeform Form Settings object.
     */
    export interface Settings {
        /**
         * Language of form.
         */
        language?: Language;
        /**
         * Default: `""`
         * true if your form is public. Otherwise, false (your form is private).
         */
        is_public?: boolean;
        /**
         * Default: `"proportion"`
         * Basis for the progress bar displayed on the screen. Choose "proportion" to show the number of questions answered so far.
         * Choose "percentage" to show the percentage of questions answered so far.
         */
        progress_bar?: 'percentage' | 'proportion';
        /**
         * Default: `""`
         * true to display progress bar on the typeform. Otherwise, false.
         */
        show_progress_bar?: boolean;
        /**
         * Default: `""`
         * true to display Typeform brand on the typeform. false to hide Typeform branding on the typeform.
         * Hiding Typeform branding is available for PRO+ accounts.
         */
        show_typeform_branding?: boolean;
        meta?: {
            /**
             * Default: `""`
             * true to allow search engines to index your typeform. Otherwise, false.
             */
            allow_indexing?: boolean;
            /**
             * Description for search engines to display for your typeform.
             */
            description?: string;
            image?: {
                /**
                 * URL of image for search engines to display for your typeform.
                 */
                href?: string;
            };
        };
        /**
         * URL where the typeform should redirect upon submission.
         */
        redirect_after_submit_url?: string;
        /**
         * Google Analytics tracking ID to use for the form.
         */
        google_analytics?: string;
        /**
         * Facebook Pixel tracking ID to use for the form.
         */
        facebook_pixel?: string;
        /**
         * Google Tag Manager ID to use for the form.
         */
        google_tag_manager?: string;
        /**
         * Notification object.
         */
        notification?: Notification;
    }
    /**
     * A theme in your Typeform account.
     */
    export interface Theme {
        /**
         * Settings for the background.
         */
        background?: ThemeBackground;
        /**
         * Colors the theme will apply to answers, background, buttons, and questions.
         */
        colors?: ThemeColors;
        /**
         * Default: `"Source Sans Pro"`
         * Font for the theme.
         */
        font?: Font;
        /**
         * `true` if buttons should be transparent. Otherwise, `false`.
         */
        has_transparent_button?: boolean;
        /**
         * Unique ID of the theme.
         */
        id?: string;
        /**
         * Name of the theme.
         */
        name?: string;
        /**
         * Default: `"private"`
         * Specifies whether the theme is `public` (one of Typeform's built-in themes that are available in all accounts) or `private`
         * (a theme you created). You can only change `private` themes. You can't change Typeform's public themes.
         */
        visibility?: 'public' | 'private';
    }
    /**
     * Settings for a theme's background.
     */
    export interface ThemeBackground {
        /**
         * Background image URL.
         */
        href?: string;
        /**
         * Default: `"fullscreen"`
         * Layout for the background.
         */
        layout?: 'fullscreen' | 'repeat' | 'no-repeat';
        /**
         * Brightness for the background. -1 is least bright (minimum) and 1 is most bright (maximum).
         */
        brightness?: number;
    }
    /**
     * Colors the theme will apply to answers, background, buttons, and questions.
     */
    export interface ThemeColors {
        /**
         * Color the theme will apply to answers. Hexadecimal value.
         */
        answer?: string;
        /**
         * Color the theme will apply to background. Hexadecimal value.
         */
        background?: string;
        /**
         * Color the theme will apply to buttons. Hexadecimal value.
         */
        button?: string;
        /**
         * Color the theme will apply to questions. Hexadecimal value.
         */
        question?: string;
    }
    /**
     * Object that specifies the settings and properties for the form's thank you screen.
     */
    export interface ThankYouScreen {
        /**
         * Readable name you can use to reference the thank you screen.
         */
        ref?: string;
        /**
         * Title for the thank you screen.
         */
        title?: string;
        /**
         * Properties of a thank you screen
         */
        properties?: Properties.ThankYouScreen;
        /**
         * Allows you to display images and videos.
         * Available for welcome and thank you screens, as well as `date`, `dropdown`, `email`, `group`, `long_text`, `multiple_choice`,
         * `number`, `opinion_scale`, `payment`, `rating`, `short_text`, `statement`, `phone_number`, and `yes_no` fields.
         */
        attachment?: Attachment;
    }
    /**
     * The type of field.
     */
    type Type = 'date' | 'dropdown' | 'email' | 'file_upload' | 'group' | 'legal' | 'long_text' | 'multiple_choice' | 'number' | 'opinion_scale' | 'payment' | 'picture_choice' | 'rating' | 'short_text' | 'statement' | 'website' | 'yes_no' | 'phone_number';
    /**
     * Validations of a field.
     */
    export interface Validations {
        /**
         * true if respondents must provide an answer. Otherwise, false.
         * Available for `date`, `dropdown`, `email`, `file_upload`, `legal`, `long_text`, `multiple_choice`, `number`, `opinion_scale`,
         * `payment`, `picture_choice`, `rating`, `short_text`, `website`, `phone_number`, and `yes_no` types.
         */
        required?: boolean;
        /**
         * Maximum number of characters allowed in the answer. Available for `long_text`, `number`, and `short_text` types.
         */
        max_length?: number;
        /**
         * Maximum value allowed in the answer. Available for `number` types.
         */
        min_value?: number;
        /**
         * Maximum value allowed in the answer. Available for number types.
         */
        max_value?: number;
    }
    /**
     * Typeform Webhook object.
     */
    export interface Webhook {
        /**
         * Unique ID for the webhook.
         */
        id?: string;
        /**
         * Unique ID for the typeform.
         */
        form_id?: string;
        /**
         * Unique name you want to use for the webhook.
         */
        tag?: string;
        /**
         * Webhook URL.
         */
        url?: string;
        /**
         * True if you want to send responses to the webhook immediately. Otherwise, false.
         */
        enabled?: boolean;
        /**
         * True if you want Typeform to verify SSL certificates when delivering payloads
         */
        verify_ssl?: boolean;
        /**
         * Date and time when webhook was created.
         * In ISO 8601 format, UTC time, to the second, with T as a delimiter between the date and time.
         */
        created_at?: string;
        /**
         * Date of last update to webhook.
         * In ISO 8601 format, UTC time, to the second, with T as a delimiter between the date and time.
         */
        updated_at?: string;
    }
    /**
     * Object that specifies the settings and properties for the form's welcome screen.
     */
    export interface WelcomeScreen {
        /**
         * Readable name you can use to reference the welcome screen.
         */
        ref?: string;
        /**
         * Title for the welcome screen.
         */
        title?: string;
        /**
         * Properties of a welcome screen
         */
        properties?: Properties.WelcomeScreen;
        /**
         * Allows you to display images and videos.
         * Available for welcome and thank you screens, as well as `date`, `dropdown`, `email`, `group`, `long_text`, `multiple_choice`,
         * `number`, `opinion_scale`, `payment`, `rating`, `short_text`, `statement`, `phone_number`, and `yes_no` fields.
         */
        attachment?: Attachment;
    }
    /**
     * Typeform Workspace object.
     */
    export interface Workspace {
        /**
         * Unique identifier for the workspace.
         */
        id?: string;
        /**
         * Name of the workspace.
         */
        name?: string;
        /**
         * If the default workspace, `true`. Otherwise, `false`.
         */
        default?: boolean;
        /**
         * If the workspace is shared with a team, `true`. Otherwise, `false`.
         */
        shared?: boolean;
        forms?: {
            /**
             * Link to typeforms in the workspace.
             */
            href?: string;
            /**
             * Number of typeforms in the workspace.
             */
            count?: number;
        };
        self: {
            /**
             * Link to the workspace.
             */
            href?: string;
        };
        /**
         * ID in the ULID format of the account where workspace belongs to.
         */
        account_id?: string;
        members: {
            name: string;
            email: string;
            role: 'owner' | 'member';
        }[];
    }
    export class ApiError extends Error {
        code: string;
        details: Object[];
        constructor(code: string, message: string, details: Object[]);
    }
    export {};
}
