import type { CSSResultOrNative } from 'lit'
import { customElement } from 'lit/decorators.js'
import Element from './internals/ApiModelingAccessConfiguration.js'
import styles from './internals/styles/AccessConfiguration.styles.js'
import typography from '../styles/m3/typography.module.js'

import '../md/dropdown-list/ui-dropdown-list.js'
import '../md/list/ui-list.js'
import '../md/list/ui-list-item.js'
import '../md/button/ui-button.js'
import '../md/divider/ui-divider.js'
import '../md/icons/ui-icon.js'
import '../md/icon-button/ui-icon-button.js'
import '../md/text-field/ui-outlined-text-field.js'
import '../md/checkbox/ui-checkbox.js'

@customElement('api-modeling-access-configuration')
export class ApiModelingAccessConfigurationElement extends Element {
  static override styles: CSSResultOrNative[] = [styles, typography]
}

declare global {
  interface HTMLElementTagNameMap {
    'api-modeling-access-configuration': ApiModelingAccessConfigurationElement
  }
}

export type { ApiModelAccessTarget, ApiModelOperationName } from './types.js'
