export interface CreateComponentData {
    /** The name of the component */
    name: string;
    /** The unique ID of the component in its original source system, such as Figma. */
    sourceId?: string;
    /** The component type. This can be an Amplify custom UI component or another custom component. */
    componentType: string;
    /** Describes the component's properties. */
    properties: Record<string, any>;
    /** A list of child components that are instances of the main component. */
    children?: any[];
    /** A list of the unique variants of this component. */
    variants: any[];
    /** Describes the component properties that can be overriden to customize an instance of the component. */
    overrides: Record<string, Record<string, any>>;
    /** The data binding information for the component's properties. */
    bindingProperties: Record<string, any>;
    /** The data binding configuration for customizing a component's properties. Use this for a collection component. */
    collectionProperties?: Record<string, any>;
    /** One or more key-value pairs to use when tagging the component data. */
    tags?: Record<string, string>;
    /** The event configuration for the component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components. */
    events?: Record<string, any>;
    /** The schema version of the component when it was imported. */
    schemaVersion?: string;
}
export interface FormDataTypeConfig {
    /** The data source type, either an Amplify DataStore model or a custom data type. */
    dataSourceType: 'DataStore' | 'Custom';
    /** The unique name of the data type you are using as the data source for the form. */
    dataTypeName: string;
}
export interface FormStyle {
    /** The spacing for the horizontal gap. */
    horizontalGap?: any;
    /** The spacing for the vertical gap. */
    verticalGap?: any;
    /** The size of the outer padding for the form. */
    outerPadding?: any;
}
export interface FormCTA {
    /** The position of the button. */
    position?: 'top' | 'bottom' | 'top_and_bottom';
    /** Displays a clear button. */
    clear?: any;
    /** Displays a cancel button. */
    cancel?: any;
    /** Displays a submit button. */
    submit?: any;
}
export interface CreateFormData {
    /** The name of the form. */
    name: string;
    /** The type of data source to use to create the form. */
    dataType: FormDataTypeConfig;
    /** Specifies whether to perform a create or update action on the form. */
    formActionType: 'create' | 'update';
    /** The configuration information for the form's fields. */
    fields: Record<string, any>;
    /** The configuration for the form's style. */
    style: FormStyle;
    /** The configuration information for the visual helper elements for the form. These elements are not associated with any data. */
    sectionalElements: Record<string, any>;
    /** The schema version of the form. */
    schemaVersion: string;
    /** The FormCTA object that stores the call to action configuration for the form. */
    cta?: FormCTA;
    /** One or more key-value pairs to use when tagging the form data. */
    tags?: Record<string, string>;
    /** Specifies an icon or decoration to display on the form. */
    labelDecorator?: 'required' | 'optional' | 'none';
}
export interface CreateThemeData {
    /** The name of the theme. */
    name: string;
    /** A list of key-value pairs that deﬁnes the properties of the theme. */
    values: any[];
    /** Describes the properties that can be overriden to customize an instance of the theme. */
    overrides?: any[];
    /** One or more key-value pairs to use when tagging the theme data. */
    tags?: Record<string, string>;
}
export interface ExchangeCodeForTokenRequestBody {
    /** The access code to send in the request. */
    code: string;
    /** The location of the application that will receive the access code. */
    redirectUri: string;
    /** The ID of the client to request the token from. */
    clientId?: string;
}
export interface PutMetadataFlagBody {
    /** The new information to store. */
    newValue: string;
}
export interface RefreshTokenRequestBody {
    /** The token to use to refresh a previously issued access token that might have expired. */
    token: string;
    /** The ID of the client to request the token from. */
    clientId?: string;
}
export interface CodegenJobGenericDataSchema {
    /** The type of the data source for the schema. Currently, the only valid value is an Amplify DataStore. */
    dataSourceType: 'DataStore';
    /** The name of a CodegenGenericDataModel. */
    models: Record<string, any>;
    /** The name of a CodegenGenericDataEnum. */
    enums: Record<string, any>;
    /** The name of a CodegenGenericDataNonModel. */
    nonModels: Record<string, any>;
}
export interface CodegenFeatureFlags {
    /** Specifes whether a code generation job supports data relationships. */
    isRelationshipSupported?: boolean;
    /** Specifies whether a code generation job supports non models. */
    isNonModelSupported?: boolean;
}
export interface StartCodegenJobData {
    /** The code generation configuration for the codegen job. */
    renderConfig: {
        react?: any;
    };
    /** The data schema to use for a code generation job. */
    genericDataSchema?: CodegenJobGenericDataSchema;
    /** Specifies whether to autogenerate forms in the code generation job. */
    autoGenerateForms?: boolean;
    /** The feature flags for a code generation job. */
    features?: CodegenFeatureFlags;
    /** One or more key-value pairs to use when tagging the code generation job data. */
    tags?: Record<string, string>;
}
export interface UpdateComponentData {
    /** The unique ID of the component to update. */
    id?: string;
    /** The name of the component to update. */
    name?: string;
    /** The unique ID of the component in its original source system, such as Figma. */
    sourceId?: string;
    /** The type of the component. This can be an Amplify custom UI component or another custom component. */
    componentType?: string;
    /** Describes the component's properties. */
    properties?: Record<string, any>;
    /** The components that are instances of the main component. */
    children?: any[];
    /** A list of the unique variants of the main component being updated. */
    variants?: any[];
    /** Describes the properties that can be overriden to customize the component. */
    overrides?: Record<string, Record<string, any>>;
    /** The data binding information for the component's properties. */
    bindingProperties?: Record<string, any>;
    /** The configuration for binding a component's properties to a data model. Use this for a collection component. */
    collectionProperties?: Record<string, any>;
    /** The event configuration for the component. Use for the workflow feature in Amplify Studio that allows you to bind events and actions to components. */
    events?: Record<string, any>;
    /** The schema version of the component when it was imported. */
    schemaVersion?: string;
}
export interface UpdateFormData {
    /** The name of the form. */
    name?: string;
    /** The type of data source to use to create the form. */
    dataType?: FormDataTypeConfig;
    /** Specifies whether to perform a create or update action on the form. */
    formActionType?: 'create' | 'update';
    /** The configuration information for the form's fields. */
    fields?: Record<string, any>;
    /** The configuration for the form's style. */
    style?: FormStyle;
    /** The configuration information for the visual helper elements for the form. These elements are not associated with any data. */
    sectionalElements?: Record<string, any>;
    /** The schema version of the form. */
    schemaVersion?: string;
    /** The FormCTA object that stores the call to action configuration for the form. */
    cta?: FormCTA;
    /** Specifies an icon or decoration to display on the form. */
    labelDecorator?: 'required' | 'optional' | 'none';
}
export interface UpdateThemeData {
    /** The unique ID of the theme to update. */
    id?: string;
    /** The name of the theme to update. */
    name?: string;
    /** A list of key-value pairs that define the theme's properties. */
    values: any[];
    /** Describes the properties that can be overriden to customize the theme. */
    overrides?: any[];
}
export interface CreateComponentInput {
    /** The unique ID of the Amplify app to associate with the component. */
    appId: string;
    /** Represents the configuration of the component to create. */
    componentToCreate: CreateComponentData;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The unique client token. */
    clientToken?: string;
}
export interface CreateFormInput {
    /** The unique ID of the Amplify app to associate with the form. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** Represents the configuration of the form to create. */
    formToCreate: CreateFormData;
    /** The unique client token. */
    clientToken?: string;
}
export interface CreateThemeInput {
    /** The unique ID of the Amplify app associated with the theme. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** Represents the configuration of the theme to create. */
    themeToCreate: CreateThemeData;
    /** The unique client token. */
    clientToken?: string;
}
export interface DeleteComponentInput {
    /** The unique ID of the Amplify app associated with the component to delete. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The unique ID of the component to delete. */
    id: string;
}
export interface DeleteFormInput {
    /** The unique ID of the Amplify app associated with the form to delete. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The unique ID of the form to delete. */
    id: string;
}
export interface DeleteThemeInput {
    /** The unique ID of the Amplify app associated with the theme to delete. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The unique ID of the theme to delete. */
    id: string;
}
export interface ExchangeCodeForTokenInput {
    /** The third-party provider for the token. The only valid value is figma. */
    provider: 'figma';
    /** Describes the configuration of the request. */
    request: ExchangeCodeForTokenRequestBody;
}
export interface ExportComponentsInput {
    /** The unique ID of the Amplify app to export components to. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The token to request the next page of results. */
    nextToken?: string;
}
export interface ExportFormsInput {
    /** The unique ID of the Amplify app to export forms to. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The token to request the next page of results. */
    nextToken?: string;
}
export interface ExportThemesInput {
    /** The unique ID of the Amplify app to export the themes to. */
    appId: string;
    /** The name of the backend environment that is part of the Amplify app. */
    environmentName: string;
    /** The token to request the next page of results. */
    nextToken?: string;
}
export interface GetCodegenJobInput {
    /** The unique ID of the Amplify app associated with the code generation job. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app associated with the code generation job. */
    environmentName: string;
    /** The unique ID of the code generation job. */
    id: string;
}
export interface GetComponentInput {
    /** The unique ID of the Amplify app. */
    appId: string;
    /** The name of the backend environment that is part of the Amplify app. */
    environmentName: string;
    /** The unique ID of the component. */
    id: string;
}
export interface GetFormInput {
    /** The unique ID of the Amplify app. */
    appId: string;
    /** The name of the backend environment that is part of the Amplify app. */
    environmentName: string;
    /** The unique ID of the form. */
    id: string;
}
export interface GetMetadataInput {
    /** The unique ID of the Amplify app. */
    appId: string;
    /** The name of the backend environment that is part of the Amplify app. */
    environmentName: string;
}
export interface GetThemeInput {
    /** The unique ID of the Amplify app. */
    appId: string;
    /** The name of the backend environment that is part of the Amplify app. */
    environmentName: string;
    /** The unique ID for the theme. */
    id: string;
}
export interface ListCodegenJobsInput {
    /** The unique ID for the Amplify app. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The maximum number of jobs to retrieve. */
    maxResults?: number;
    /** The token to request the next page of results. */
    nextToken?: string;
}
export interface ListComponentsInput {
    /** The unique ID for the Amplify app. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The maximum number of components to retrieve. */
    maxResults?: number;
    /** The token to request the next page of results. */
    nextToken?: string;
}
export interface ListFormsInput {
    /** The unique ID for the Amplify app. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The maximum number of forms to retrieve. */
    maxResults?: number;
    /** The token to request the next page of results. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) to use to list tags. */
    resourceArn: string;
}
export interface ListThemesInput {
    /** The unique ID for the Amplify app. */
    appId: string;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The maximum number of theme results to return in the response. */
    maxResults?: number;
    /** The token to request the next page of results. */
    nextToken?: string;
}
export interface PutMetadataFlagInput {
    /** The unique ID for the Amplify app. */
    appId: string;
    /** The metadata information to store. */
    body: PutMetadataFlagBody;
    /** The name of the backend environment that is part of the Amplify app. */
    environmentName: string;
    /** The name of the feature associated with the metadata. */
    featureName: string;
}
export interface RefreshTokenInput {
    /** The third-party provider for the token. The only valid value is figma. */
    provider: 'figma';
    /** Information about the refresh token request. */
    refreshTokenBody: RefreshTokenRequestBody;
}
export interface StartCodegenJobInput {
    /** The unique ID for the Amplify app. */
    appId: string;
    /** The code generation job resource configuration. */
    codegenJobToCreate: StartCodegenJobData;
    /** The name of the backend environment that is a part of the Amplify app. */
    environmentName: string;
    /** The idempotency token used to ensure that the code generation job request completes only once. */
    clientToken?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) to use to tag a resource. */
    resourceArn: string;
    /** A list of tag key value pairs for a specified Amazon Resource Name (ARN). */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) to use to untag a resource. */
    resourceArn: string;
    /** The tag keys to use to untag a resource. */
    tagKeys: string[];
}
export interface UpdateComponentInput {
    /** The unique ID for the Amplify app. */
    appId: string;
    /** The name of the backend environment that is part of the Amplify app. */
    environmentName: string;
    /** The unique ID for the component. */
    id: string;
    /** The configuration of the updated component. */
    updatedComponent: UpdateComponentData;
    /** The unique client token. */
    clientToken?: string;
}
export interface UpdateFormInput {
    /** The unique ID for the Amplify app. */
    appId: string;
    /** The name of the backend environment that is part of the Amplify app. */
    environmentName: string;
    /** The unique ID for the form. */
    id: string;
    /** The request accepts the following data in JSON format. */
    updatedForm: UpdateFormData;
    /** The unique client token. */
    clientToken?: string;
}
export interface UpdateThemeInput {
    /** The unique ID for the Amplify app. */
    appId: string;
    /** The name of the backend environment that is part of the Amplify app. */
    environmentName: string;
    /** The unique ID for the theme. */
    id: string;
    /** The configuration of the updated theme. */
    updatedTheme: UpdateThemeData;
    /** The unique client token. */
    clientToken?: string;
}
/** AmplifyUIBuilder service binding for Step Functions SDK integrations. */
export declare class AmplifyUIBuilder {
    constructor();
    createComponent<T>(params: CreateComponentInput): Promise<T>;
    createForm<T>(params: CreateFormInput): Promise<T>;
    createTheme<T>(params: CreateThemeInput): Promise<T>;
    deleteComponent<T>(params: DeleteComponentInput): Promise<T>;
    deleteForm<T>(params: DeleteFormInput): Promise<T>;
    deleteTheme<T>(params: DeleteThemeInput): Promise<T>;
    exchangeCodeForToken<T>(params: ExchangeCodeForTokenInput): Promise<T>;
    exportComponents<T>(params: ExportComponentsInput): Promise<T>;
    exportForms<T>(params: ExportFormsInput): Promise<T>;
    exportThemes<T>(params: ExportThemesInput): Promise<T>;
    getCodegenJob<T>(params: GetCodegenJobInput): Promise<T>;
    getComponent<T>(params: GetComponentInput): Promise<T>;
    getForm<T>(params: GetFormInput): Promise<T>;
    getMetadata<T>(params: GetMetadataInput): Promise<T>;
    getTheme<T>(params: GetThemeInput): Promise<T>;
    listCodegenJobs<T>(params: ListCodegenJobsInput): Promise<T>;
    listComponents<T>(params: ListComponentsInput): Promise<T>;
    listForms<T>(params: ListFormsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listThemes<T>(params: ListThemesInput): Promise<T>;
    putMetadataFlag<T>(params: PutMetadataFlagInput): Promise<T>;
    refreshToken<T>(params: RefreshTokenInput): Promise<T>;
    startCodegenJob<T>(params: StartCodegenJobInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateComponent<T>(params: UpdateComponentInput): Promise<T>;
    updateForm<T>(params: UpdateFormInput): Promise<T>;
    updateTheme<T>(params: UpdateThemeInput): Promise<T>;
}
//# sourceMappingURL=AmplifyUIBuilder.d.ts.map