import { EventEmitter } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { QdContactAddress, QdContactData, QdContactDataCustomField, QdContactPerson } from './model/contact-data.interface';
import { QdContactCardActionsConfig } from './model/contact-card-actions-config.interface';
import * as i0 from "@angular/core";
/**
 * With **QdContactCard** a kind of business card can be created. Multiple contact cards can be combined. <br />
 * Wrapping to the next line is the default behavior of the browser.
 *
 * **Usage:**
 *
 * @example
 * <qd-contact-card [contactData]="contactData1"></qd-contact-card>
 * <qd-contact-card [contactData]="contactData2"></qd-contact-card>
 * <qd-contact-card [contactData]="contactData3"></qd-contact-card>
 *
 * ## Placeholders
 *
 * By default, placeholders will be displayed for missing properties so that the fields are aligned for contact cards
 * that stand in the same row. To disable the placeholders, set **hasPlaceholders** to `false`.
 *
 * ```html
 * <qd-contact-card [contactData]="contactData" [hasPlaceholders]="false"></qd-contact-card>
 * ```
 *
 * ## Actions
 *
 * Optionally, an action menu can be integrated into the contact card. Just define the menu actions with the
 * **actions** input. Each action has a label and a handler that receives the `contactData` as a parameter.
 *
 * ```html
 * <qd-contact-card [contactData]="contactData" [actions]="actions"></qd-contact-card>
 * ```
 *
 * ```typescript
 * actions: QdContactCardActionsConfig = [
 *   {
 *     label: { i18n: 'i18n.qd.exampleContactCard.view' },
 *     handler: (contactData) => {}
 *   }
 * ];
 * ```
 *
 * ### Disabled and hidden actions
 *
 * An action can be hidden completely with the **isHidden** property. To hide an action conditionally, you can
 * pass a callback to the **isHidden** property that receives the `contactData` as a parameter.
 *
 * To disable an action, use the **isDisabled** property. The action is then displayed but cannot be clicked.
 *
 * ```typescript
 * actions: QdContactCardActionsConfig = [
 *   {
 *     label: { i18n: 'i18n.qd.exampleContactCard.view' },
 *     handler: (contactData) => {}
 *   },
 *   {
 *     label: { i18n: 'i18n.qd.exampleContactCard.edit' },
 *     handler: (contactData) => {}.
 *     isHidden: contactData => contactData.businessPartnerId !== 'GP5468497635'
 *   },
 *   {
 *     label: { i18n: 'i18n.qd.exampleContactCard.delete' },
 *     handler: (contactData) => {},
 *     isDisabled: contactData => contactData.businessPartnerId !== 'GP5468497635'
 *   }
 * ];
 * ```
 *
 * ## Custom Fields
 *
 * Custom fields can be defined in the contactData `customFields` property. The custom fields will be displayed
 * at the bottom of the contact card. A custom field can optionally have a label that will be displayed in front of
 * the custom field value. Label and value can be plain strings or objects with an `i18n` key if you need translation.
 *
 *
 * ```typescript
 * contactData: QdContactData = {
 *   contactFunction: {
 *     i18n: 'i18n.contact.function.sender'
 *   },
 *   companyName: 'Fritz Meier AG',
 *   businessPartnerId: 'GP5468497635',
 *   contactPerson: {
 *     firstName: 'Max',
 *     lastName: 'Muster'
 *   },
 *   address: {
 *     street: 'Teststrasse 12',
 *     countryCode: 'CH',
 *     postalCode: '8952',
 *     city: 'Schlieren'
 *   },
 *   phoneNumber: '+49 175 64821346',
 *   emailAddress: 'max.muster@fritzmeier.ch',
 *   customFields: [
 *     {
 *       label: 'UID',
 *       value: '798347982674'
 *     },
 *     {
 *       label: {
 *         i18n: 'i18n.qd.exampleContactCard.bafuNumber'
 *       },
 *       value: 'B87384789CH23'
 *     }
 *   ]
 * };
 * ```
 */
export declare class QdContactCardComponent {
    readonly translateService: TranslateService;
    /**
     * Data for the **QdContactCard**
     */
    contactData: QdContactData;
    /**
     * Configuration for the **QdContactCard** actions
     */
    actions?: QdContactCardActionsConfig;
    /**
     * Display placeholders instead of the missing properties
     *
     * @default true
     */
    set hasPlaceholders(hasPlaceholders: boolean);
    get hasPlaceholders(): boolean;
    /**
     * A static test ID for integration tests can be set. <br />
     * The value for the HTML attribute [data-test-id].
     */
    testId: string;
    /**
     * Emits event on click/tap on the e-mail address.
     */
    emailAddressClicked: EventEmitter<any>;
    private _hasPlaceholders;
    constructor(translateService: TranslateService);
    get contactFunction(): string;
    get contactTag(): string | undefined;
    get companyName(): string | undefined;
    get businessPartnerId(): string | undefined;
    get contactPerson(): QdContactPerson;
    get firstName(): string;
    get lastName(): string;
    get address(): QdContactAddress;
    get careOf(): string | undefined;
    get street(): string | undefined;
    get countryCode(): string;
    get postalCode(): string | undefined;
    get city(): string;
    get phoneNumber(): string;
    get phoneUrl(): string;
    get emailAddress(): string;
    get customFields(): QdContactDataCustomField[];
    hasTag(): boolean;
    hasCompanyName(): boolean;
    hasBusinessPartnerId(): boolean;
    hasContactPerson(): boolean;
    hasPhoneNumber(): boolean;
    hasPhoneUrl(): boolean;
    hasAddress(): boolean;
    hasCareOf(): boolean;
    hasStreet(): boolean;
    hasEmailAddress(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<QdContactCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QdContactCardComponent, "qd-contact-card", never, { "contactData": { "alias": "contactData"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "hasPlaceholders": { "alias": "hasPlaceholders"; "required": false; }; "testId": { "alias": "data-test-id"; "required": false; }; }, { "emailAddressClicked": "emailAddressClicked"; }, never, never, false, never>;
}
//# sourceMappingURL=contact-card.component.d.ts.map