import { DevicePlatformType, type BaseCollectionPaginationCountResponse, type Entity } from '../index.js';
import { type AdditionalDataHolder, type BackedModel, type Parsable, type ParseNode, type SerializationWriter } from '@microsoft/kiota-abstractions';
export interface Acronym extends Parsable, SearchAnswer {
    /**
     * What the acronym stands for.
     */
    standsFor?: string | null;
    /**
     * The state property
     */
    state?: AnswerState | null;
}
export interface AcronymCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Acronym[] | null;
}
export interface AnswerKeyword extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * A collection of keywords used to trigger the search answer.
     */
    keywords?: string[] | null;
    /**
     * If true, indicates that the search term contains similar words to the keywords that should trigger the search answer.
     */
    matchSimilarKeywords?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * Unique keywords that guarantee the search answer is triggered.
     */
    reservedKeywords?: string[] | null;
}
export type AnswerState = (typeof AnswerStateObject)[keyof typeof AnswerStateObject];
export interface AnswerVariant extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The answer variation description that is shown on the search results page.
     */
    description?: string | null;
    /**
     * The answer variation name that is displayed in search results.
     */
    displayName?: string | null;
    /**
     * The country or region that can view this answer variation.
     */
    languageTag?: string | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The device or operating system that can view this answer variation. Possible values are: android, androidForWork, ios, macOS, windowsPhone81, windowsPhone81AndLater, windows10AndLater, androidWorkProfile, unknown, androidASOP, androidMobileApplicationManagement, iOSMobileApplicationManagement, unknownFutureValue.
     */
    platform?: DevicePlatformType | null;
    /**
     * The URL link for the answer variation. When users select this answer variation from the search results, they're directed to the specified URL.
     */
    webUrl?: string | null;
}
export interface Bookmark extends Parsable, SearchAnswer {
    /**
     * Date and time when the bookmark stops appearing as a search result. Set as null for always available. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    availabilityEndDateTime?: Date | null;
    /**
     * Date and time when the bookmark starts to appear as a search result. Set as null for always available. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    availabilityStartDateTime?: Date | null;
    /**
     * Categories commonly used to describe this bookmark. For example, IT and HR.
     */
    categories?: string[] | null;
    /**
     * The list of security groups that are able to view this bookmark.
     */
    groupIds?: string[] | null;
    /**
     * True if this bookmark was suggested to the admin, by a user, or was mined and suggested by Microsoft. Read-only.
     */
    isSuggested?: boolean | null;
    /**
     * Keywords that trigger this bookmark to appear in search results.
     */
    keywords?: AnswerKeyword | null;
    /**
     * A list of geographically specific language names in which this bookmark can be viewed. Each language tag value follows the pattern {language}-{region}. For example, en-us is English as used in the United States. For the list of possible values, see Supported language tags.
     */
    languageTags?: string[] | null;
    /**
     * List of devices and operating systems that are able to view this bookmark. Possible values are: android, androidForWork, ios, macOS, windowsPhone81, windowsPhone81AndLater, windows10AndLater, androidWorkProfile, unknown, androidASOP, androidMobileApplicationManagement, iOSMobileApplicationManagement, unknownFutureValue.
     */
    platforms?: DevicePlatformType[] | null;
    /**
     * List of Power Apps associated with this bookmark. If users add existing Power Apps to a bookmark, they can complete tasks directly on the search results page, such as entering vacation time or reporting expenses.
     */
    powerAppIds?: string[] | null;
    /**
     * The state property
     */
    state?: AnswerState | null;
    /**
     * Variations of a bookmark for different countries/regions or devices. Use when you need to show different content to users based on their device, country/region, or both. The date and group settings apply to all variations.
     */
    targetedVariations?: AnswerVariant[] | null;
}
export interface BookmarkCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Bookmark[] | null;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AcronymCollectionResponse}
 */
export declare function createAcronymCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Acronym}
 */
export declare function createAcronymFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AnswerKeyword}
 */
export declare function createAnswerKeywordFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AnswerVariant}
 */
export declare function createAnswerVariantFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {BookmarkCollectionResponse}
 */
export declare function createBookmarkCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Bookmark}
 */
export declare function createBookmarkFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Identity}
 */
export declare function createIdentityFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {IdentitySet}
 */
export declare function createIdentitySetFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {QnaCollectionResponse}
 */
export declare function createQnaCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Qna}
 */
export declare function createQnaFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SearchAnswer}
 */
export declare function createSearchAnswerFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * The deserialization information for the current model
 * @param Acronym The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAcronym(acronym?: Partial<Acronym> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param AcronymCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAcronymCollectionResponse(acronymCollectionResponse?: Partial<AcronymCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param AnswerKeyword The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAnswerKeyword(answerKeyword?: Partial<AnswerKeyword> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param AnswerVariant The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAnswerVariant(answerVariant?: Partial<AnswerVariant> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param Bookmark The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoBookmark(bookmark?: Partial<Bookmark> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param BookmarkCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoBookmarkCollectionResponse(bookmarkCollectionResponse?: Partial<BookmarkCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param Identity The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoIdentity(identity?: Partial<Identity> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param IdentitySet The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoIdentitySet(identitySet?: Partial<IdentitySet> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param Qna The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoQna(qna?: Partial<Qna> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param QnaCollectionResponse The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoQnaCollectionResponse(qnaCollectionResponse?: Partial<QnaCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param SearchAnswer The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSearchAnswer(searchAnswer?: Partial<SearchAnswer> | undefined): Record<string, (node: ParseNode) => void>;
export interface Identity extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The displayName property
     */
    displayName?: string | null;
    /**
     * The id property
     */
    id?: string | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
}
export interface IdentitySet extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * The application property
     */
    application?: Identity | null;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The device property
     */
    device?: Identity | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The user property
     */
    user?: Identity | null;
}
export interface Qna extends Parsable, SearchAnswer {
    /**
     * Date and time when the QnA stops appearing as a search result. Set as null for always available. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    availabilityEndDateTime?: Date | null;
    /**
     * Date and time when the QnA starts to appear as a search result. Set as null for always available. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    availabilityStartDateTime?: Date | null;
    /**
     * The list of security groups that are able to view this QnA.
     */
    groupIds?: string[] | null;
    /**
     * True if a user or Microsoft suggested this QnA to the admin. Read-only.
     */
    isSuggested?: boolean | null;
    /**
     * Keywords that trigger this QnA to appear in search results.
     */
    keywords?: AnswerKeyword | null;
    /**
     * A list of geographically specific language names in which this QnA can be viewed. Each language tag value follows the pattern {language}-{region}. For example, en-us is English as used in the United States. For the list of possible values, see Supported language tags.
     */
    languageTags?: string[] | null;
    /**
     * List of devices and operating systems that are able to view this QnA. Possible values are: android, androidForWork, ios, macOS, windowsPhone81, windowsPhone81AndLater, windows10AndLater, androidWorkProfile, unknown, androidASOP, androidMobileApplicationManagement, iOSMobileApplicationManagement, unknownFutureValue.
     */
    platforms?: DevicePlatformType[] | null;
    /**
     * The state property
     */
    state?: AnswerState | null;
    /**
     * Variations of a QnA for different countries/regions or devices. Use when you need to show different content to users based on their device, country/region, or both. The date and group settings apply to all variations.
     */
    targetedVariations?: AnswerVariant[] | null;
}
export interface QnaCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Qna[] | null;
}
export interface SearchAnswer extends Entity, Parsable {
    /**
     * The search answer description that is shown on the search results page.
     */
    description?: string | null;
    /**
     * The search answer name that is displayed in search results.
     */
    displayName?: string | null;
    /**
     * Details of the user who created or last modified the search answer. Read-only.
     */
    lastModifiedBy?: IdentitySet | null;
    /**
     * Date and time when the search answer was created or last edited. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.
     */
    lastModifiedDateTime?: Date | null;
    /**
     * The URL link for the search answer. When users select this search answer from the search results, they're directed to the specified URL.
     */
    webUrl?: string | null;
}
/**
 * Serializes information the current object
 * @param Acronym The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAcronym(writer: SerializationWriter, acronym?: Partial<Acronym> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param AcronymCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAcronymCollectionResponse(writer: SerializationWriter, acronymCollectionResponse?: Partial<AcronymCollectionResponse> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param AnswerKeyword The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAnswerKeyword(writer: SerializationWriter, answerKeyword?: Partial<AnswerKeyword> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param AnswerVariant The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAnswerVariant(writer: SerializationWriter, answerVariant?: Partial<AnswerVariant> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param Bookmark The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeBookmark(writer: SerializationWriter, bookmark?: Partial<Bookmark> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param BookmarkCollectionResponse The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeBookmarkCollectionResponse(writer: SerializationWriter, bookmarkCollectionResponse?: Partial<BookmarkCollectionResponse> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param Identity The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeIdentity(writer: SerializationWriter, identity?: Partial<Identity> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param IdentitySet The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeIdentitySet(writer: SerializationWriter, identitySet?: Partial<IdentitySet> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Qna The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeQna(writer: SerializationWriter, qna?: Partial<Qna> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param QnaCollectionResponse The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeQnaCollectionResponse(writer: SerializationWriter, qnaCollectionResponse?: Partial<QnaCollectionResponse> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param SearchAnswer The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSearchAnswer(writer: SerializationWriter, searchAnswer?: Partial<SearchAnswer> | undefined | null, isSerializingDerivedType?: boolean): void;
export declare const AnswerStateObject: {
    readonly Published: "published";
    readonly Draft: "draft";
    readonly Excluded: "excluded";
    readonly UnknownFutureValue: "unknownFutureValue";
};
//# sourceMappingURL=index.d.ts.map